Dein Programm ist richtig. Wenn die Dateigröße klein ist, funktioniert es gut. Wenn Sie BLOB
verwenden Datentyp zum Speichern dieser Binärdaten, ändern Sie ihn in LONGBLOB
. Denn wenn Sie versucht haben, eine Datei in BLOB
zu speichern Datenfeld, und wenn die Dateigröße die maximal zulässige Größe des BLOB-Datentyps überschreitet, wird der Inhalt abgeschnitten und Sie verlieren einen Teil des Dateiinhalts (abhängig von der Dateigröße). Auch wenn Sie LONGBLOB
verwenden Datentyp gibt es einige Dinge, die Sie überprüfen müssen. Ich erkläre es
Auf der mysql-Website können wir diese maximale Dateigröße von LONGBLOB
sehen ist 4GB. Aber es hängt von vielen Dingen ab. Um große Dateien zu speichern, müssen Sie einige Dinge überprüfen. Das erste ist in my.ini
Datei gibt es eine Eigenschaft namens max_allowed_packet
, gibt es das größtmögliche Paket an, das zu oder von einem MySQL-Client oder -Server übertragen werden kann. Sie sollten max_allowed_packet
festlegen Eigentum zu einem höheren Wert. Und starten Sie mysql neu. Einige Dateisysteme lassen keine 4-GB-Dateien zu. In diesem Fall können Sie keine so große Datei laden.
Ich denke in Ihrem Fall die Einstellung max_allowed_packet
Eigenschaft auf einen höheren Wert wird das Problem beheben.
Ich denke, Sie können das folgende Tabellenerstellungsskript
verwendenCREATE TABLE `image` (
`id` INT(10) NULL DEFAULT NULL,
`fs` LONGBLOB NULL,
`filen` VARCHAR(50) NULL DEFAULT NULL
)