Програмата ви е правилна. Ако размерът на файла е малък, той ще работи добре. Ако използвате BLOB
тип данни за съхраняване на тези двоични данни, променете го на LONGBLOB
. Защото, ако се опитате да запишете файл в BLOB
поле за данни и ако размерът на файла е повече от максималния разрешен размер на типа данни BLOB, тогава съдържанието ще бъде съкратено и ще загубите част от съдържанието на файла (зависи от размера на файла). Дори ако използвате LONGBLOB
тип данни има някои неща, които трябва да проверите. Ще обясня
В уебсайта на mysql можем да видим този максимален размер на файла LONGBLOB
е 4GB. Но зависи от много неща. За да съхранявате голям файл, трябва да проверите някои неща. Първото нещо е в my.ini
файл, има свойство, наречено max_allowed_packet
, той определя най-големия възможен пакет, който може да бъде предаден към или от mysql клиент или сървър. Трябва да зададете max_allowed_packet
имот на по-висока стойност. И рестартирайте mysql. Някои файлови системи не позволяват файлове от 4 GB. В този случай не можете да заредите толкова голям файл.
Мисля, че във вашия случай настройката max_allowed_packet
свойство на по-висока стойност ще реши проблема.
Мисля, че можете да използвате следния скрипт за създаване на таблица
CREATE TABLE `image` (
`id` INT(10) NULL DEFAULT NULL,
`fs` LONGBLOB NULL,
`filen` VARCHAR(50) NULL DEFAULT NULL
)