Váš program je správný. Pokud je velikost souboru malá, bude to fungovat dobře. Pokud používáte BLOB
datový typ pro uložení těchto binárních dat, změňte jej na LONGBLOB
. Protože pokud jste se pokusili uložit soubor v BLOB
datové pole, a pokud je velikost souboru větší než maximální povolená velikost datového typu BLOB, obsah bude zkrácen a ztratíte část obsahu souboru (závisí na velikosti souboru). I když používáte LONGBLOB
datový typ existuje několik věcí, které musíte zkontrolovat. Vysvětlím
Na webu mysql můžeme vidět maximální velikost souboru LONGBLOB
je 4 GB. Ale záleží na mnoha věcech. Chcete-li uložit velký soubor, musíte zkontrolovat některé věci. První věc je v my.ini
existuje vlastnost nazvaná max_allowed_packet
, určuje největší možný paket, který lze přenést na nebo z klienta nebo serveru mysql. Měli byste nastavit max_allowed_packet
majetek na vyšší hodnotu. A restartujte mysql. Některé systémy souborů neumožňují soubory o velikosti 4 GB. V takovém případě nemůžete načíst tak velký soubor.
Myslím, že ve vašem případě nastavte max_allowed_packet
vlastnost na vyšší hodnotu problém vyřeší.
Myslím, že můžete použít následující skript pro vytvoření tabulky
CREATE TABLE `image` (
`id` INT(10) NULL DEFAULT NULL,
`fs` LONGBLOB NULL,
`filen` VARCHAR(50) NULL DEFAULT NULL
)