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
)