Mysql
 sql >> Base de données >  >> RDS >> Mysql

BLOb :impossible de lire toutes les données, mais quelques ko

Votre programme est correct. Si la taille du fichier est petite, cela fonctionnera bien. Si vous utilisez BLOB type de données pour stocker ces données binaires, changez-le en LONGBLOB . Parce que si vous avez essayé d'enregistrer un fichier dans BLOB champ de données, et si la taille du fichier est supérieure à la taille maximale autorisée du type de données BLOB, le contenu sera tronqué et vous perdrez une partie du contenu du fichier (selon la taille du fichier). Même si vous utilisez LONGBLOB type de données il y a certaines choses que vous devez vérifier. Je vais t'expliquer

Sur le site Web mysql, nous pouvons voir que la taille maximale du fichier est de LONGBLOB est de 4 Go. Mais cela dépend de beaucoup de choses. Pour stocker un fichier volumineux, vous devez vérifier certaines choses. La première chose est dans my.ini fichier, il existe une propriété appelée max_allowed_packet , il spécifie le plus grand paquet possible pouvant être transmis vers ou depuis un client ou un serveur mysql. Vous devez définir max_allowed_packet propriété à une valeur supérieure. Et redémarrez mysql. Certains systèmes de fichiers n'autorisent pas les fichiers de 4 Go. Dans ce cas, vous ne pouvez pas charger autant de gros fichiers.

Je pense que dans votre cas, définissez max_allowed_packet propriété à une valeur plus élevée résoudra le problème.

Je pense que vous pouvez utiliser le script de création de table suivant

CREATE TABLE `image` (
    `id` INT(10) NULL DEFAULT NULL,
    `fs` LONGBLOB NULL,
    `filen` VARCHAR(50) NULL DEFAULT NULL
)