Нужна помощь в получении файла изображения в виде текста с помощью Javascript FileReader - PullRequest
0 голосов
/ 27 октября 2019

Я нашел способ вставить изображение в базу данных через AJAX. Вместо отправки через форму, я хотел бы преобразовать файл изображения в текст (longblob), затем отправить его в скрипт PHP через переменную POST, чтобы я мог получить к ним доступ через $ _POST ['var_name'], а затем вставить их обычно черезSQL, но проблема в , Javascript FileReader не может вернуть действительный текст изображения, если вы, как правило, получаете со стороны PHP, используя функции fopen и fread. Мне нужно найти способ конвертировать изображение в текст (longblob), чтобы я мог вставить их в таблицу.

Я попытался использовать FileReader, затем выбрал fileReader.readAsText, но результат не изменился 'Кажется, что для базы данных типа longblob t в базе данных

// Here is in the JavaScript //

let image_file = document.getElementById("upload_image").files[0];
let vars = "image_data=";

let fileReader = new FileReader();
fileReader.onloadend = function()
{
   // I pass in callback function, so I get this.result to assign else where
    callBack(this.result);
}

fileReader.readAsText(image_file);

// Then, I concat the image text to the vars variable
vars += result;

/* By this time vars would be "image_data=#$@#$DGJ#J$@#!$#@$@$..."(some 
   converted string),but the problem is this image_data does not contain 
   the correct image string (when get from $_POST on the PHP side) . I 
   would like to know if there're any ways to get the correct image 
   string as if it's obtained by using fopen, then fread function on the 
   PHP side*/

приведена правильная строка изображения из PHP

����JFIF``��LEAD Technologies Inc. V1. 01��� ���}! 1AQa "q2��� # B��R�� $ 3br�% & '() * 456789: CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������w! 1AQaq "2�B���� # 3R�br� $ 4�% � & '() 56789: CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������� "0��? �ۭ D��V02��7��k����" ��: ���Kc�j��} ������2c��8�j� # �9 ^ WBlC Ո LFW2' = G Զ 36? J [Ь, ޿ (%o; � & [p: ����Ƭ��lM�c * �O� �n�6��df�Y�> 8�t9�rNd�� (�� [�� ݋�� kxc��Ҹn۸ \ �Ү���; �1���� ^ �N��% ux���. $% �Q�) � ^ �VR�lI�'ʸ? ....

Строка файла изображения после открытия с использованием fopen и функций fread. Реальный текст, который я выводил, имеет длину 20000+ букв, но в JavaScipt FileReader он дает мне это ..

����JFIF``��LEAD Technologies Inc. V1.01��� ���}! 1AQa "q2��� # B��R�� $ 3br�%

Да, все! Как видите, оба результата практически одинаковы. Я хотел бы знать, почему я не получил тот же текст в сценарий PHP из JavaScript FileReader. Кто-нибудь знает, как это решить? или, возможно, дайте несколько советов по отправке файлов через AJAX. Большое спасибо.

...