Je programma is correct. Als de bestandsgrootte klein is, werkt het prima. Als u BLOB
. gebruikt datatype om die binaire gegevens op te slaan, verander het in LONGBLOB
. Want als je probeerde een bestand op te slaan in BLOB
gegevensveld, en als de bestandsgrootte groter is dan de maximaal toegestane grootte van het BLOB-gegevenstype, wordt de inhoud afgekapt en verliest u wat inhoud van het bestand (afhankelijk van de bestandsgrootte). Zelfs als u LONGBLOB
. gebruikt datatype zijn er enkele dingen die u moet controleren. Ik zal het uitleggen
Op de mysql-website kunnen we zien dat de maximale bestandsgrootte van LONGBLOB
bedraagt 4GB. Maar het hangt van veel dingen af. Om grote bestanden op te slaan moet je een aantal dingen controleren. Het eerste is in my.ini
bestand, is er een eigenschap genaamd max_allowed_packet
, specificeert het het grootst mogelijke pakket dat kan worden verzonden van of naar een mysql-client of -server. U moet max_allowed_packet
. instellen eigendom naar een hogere waarde. En herstart mysql. Sommige bestandssystemen staan geen bestanden van 4 GB toe. In dat geval kun je niet zoveel grote bestanden laden.
Ik denk dat in jouw geval max_allowed_packet
eigenschap naar een hogere waarde zal het probleem oplossen.
Ik denk dat je het volgende script voor het maken van tabellen kunt gebruiken
CREATE TABLE `image` (
`id` INT(10) NULL DEFAULT NULL,
`fs` LONGBLOB NULL,
`filen` VARCHAR(50) NULL DEFAULT NULL
)