Mysql
 sql >> Database >  >> RDS >> Mysql

BLOb:impossibile leggere tutti i dati, ma pochi kb

Il tuo programma è corretto. Se la dimensione del file è piccola, funzionerà correttamente. Se stai usando BLOB datatype per memorizzare i dati binari, cambialo in LONGBLOB . Perché se hai provato a salvare un file in BLOB campo dati e se la dimensione del file è superiore alla dimensione massima consentita del tipo di dati BLOB, il contenuto verrà troncato e perderai parte del contenuto del file (dipende dalla dimensione del file). Anche se usi LONGBLOB tipo di dati ci sono alcune cose che devi controllare. Ti spiego

Nel sito Web mysql possiamo vedere la dimensione massima del file di LONGBLOB è 4 GB. Ma dipende da molte cose. Per archiviare file di grandi dimensioni devi controllare alcune cose. La prima cosa è in my.ini file, esiste una proprietà chiamata max_allowed_packet , specifica il pacchetto più grande possibile che può essere trasmesso da o verso un client o server mysql. Dovresti impostare max_allowed_packet proprietà ad un valore superiore. E riavvia MySQL. Alcuni file system non consentono file da 4 GB. In tal caso non è possibile caricare un file così grande.

Penso che nel tuo caso l'impostazione max_allowed_packet proprietà a un valore più alto risolverà il problema.

Penso che tu possa usare il seguente script di creazione della tabella

CREATE TABLE `image` (
    `id` INT(10) NULL DEFAULT NULL,
    `fs` LONGBLOB NULL,
    `filen` VARCHAR(50) NULL DEFAULT NULL
)