Сохранение имени файла как `BLOB` в базе данных - PullRequest
0 голосов
/ 03 июня 2018

Когда я отправляю файл (type = "file") в базу данных (PHPmyAdmin), вместо сохранения с именем файла он сохраняется как BLOB, как показано на следующем рисунке.

enter image description here

Я нашел похожий вопрос Сохранение файлов в виде BLOB-объектов в базе данных ajax php pdo , но мне это не помогло.Мой код php выглядит следующим образом для отправки файла в базу данных.

       $info = pathinfo($_FILES['file']['name']);
       $ext = $info['extension']; // get the extension of the file
       $newname = $get.".".$ext;  //$newname='newfilename.'.$ext     
       $target ="folder/".$newname;
       $doc= move_uploaded_file( $_FILES['file']['tmp_name'], $target);         
       $sql="INSERT INTO apply(mobile,doc,position) 
             VALUES (' $mobile','$newname',' $position')";  
       $query=mysqli_query($conn, $sql);

Файл отправляется в целевую папку (названную папку) с правильным требуемым именем, но почему я не получаю то же имяв базе данных.Что не так в моем коде?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 июня 2018

Прежде всего, вам не следует напрямую разрывать файлы в базе данных из-за критических проблем с производительностью.

Рекомендуется хранить файлы в файловой системе и сохранять их путь в базе данных как TEXT или Varchar.

Теперь перейдем к вашему вопросу:

Пока я отправляю файл (type = "file") в базу данных (PHPmyAdmin), вместо этогоСохранение с именем файла сохраняет как BLOB, как показано на следующем рисунке.

Каждый файл состоит из двоичных файлов, но в другом порядке и формате.Хранить его в базе данных на самом деле не сложно.База данных преобразует их в массив байтов / поток байтов, а затем сохраняет эти данные формата байтов в таблицу.

Когда запускается запрос на выборку, он возвращает точный поток байтов в ответ.А на уровне приложения эти байты обрабатываются как файлы с помощью соответствующих методов кодирования.

Стоит прочитать этот пост и последующую ссылку в принятом ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...