Dit program er korrekt. Hvis filstørrelsen er lille, fungerer den fint. Hvis du bruger BLOB
datatype for at gemme de binære data, skal du ændre den til LONGBLOB
. Fordi hvis du prøvede at gemme en fil i BLOB
datafelt, og hvis filstørrelsen er mere end den maksimalt tilladte størrelse af BLOB-datatypen, vil indholdet blive afkortet, og du vil miste noget indhold af filen (afhænger af filstørrelsen). Også selvom du bruger LONGBLOB
datatype er der nogle ting du skal tjekke. Jeg vil forklare
På mysql-webstedet kan vi se den maksimale filstørrelse på LONGBLOB
er 4GB. Men det afhænger af mange ting. For at gemme store filer skal du kontrollere nogle ting. Det første er i my.ini
fil, er der en egenskab kaldet max_allowed_packet
, specificerer den størst mulige pakke, der kan transmitteres til eller fra en mysql-klient eller -server. Du bør indstille max_allowed_packet
ejendom til en højere værdi. Og genstart mysql. Nogle filsystemer tillader ikke 4GB-filer. I så fald kan du ikke indlæse så meget stor fil.
Jeg tror i dit tilfælde indstilling max_allowed_packet
ejendom til en højere værdi vil løse problemet.
Jeg tror, du kan bruge følgende tabeloprettelsesscript
CREATE TABLE `image` (
`id` INT(10) NULL DEFAULT NULL,
`fs` LONGBLOB NULL,
`filen` VARCHAR(50) NULL DEFAULT NULL
)