Вход

Просмотр полной версии : Загрузка файлов ajax, в чем ошибка?


shmelev
18.01.2018, 20:47
Реализую загрузку файлов на сервер.

Есть 2 страницы сайта. При загрузке файлов с первой страницы, все ок. При загрузке с другой страницы - файл сохраняется не корректно.

С обеих страниц файл отправляется одной и той же JS функцией. На стороне сервера, запрос принимает один и тот же php файл.

Запросы выглядят идентично. Прикрепляю:

Запрос с первой страницы https://yadi.sk/i/vyN20mue3RZcmv
Запрос со второй страницы https://yadi.sk/i/Xe-hhvhu3RZcoQ

Варианты сохраненного файла:

успех https://yadi.sk/i/6UYrHGfT3RZdPa
ошибка https://yadi.sk/d/W08LZzJi3RZdTU

Подскажите, может я чего-то не вижу в заголовках?

Или проблему нужно искать в другом месте?

Aetae
18.01.2018, 21:12
Скорее всего страницы имеют разную кодировку, а функция неким неудачным образом работает с т.н. "bytestring", т.е. представлением бинарных данных в виде строки.

shmelev
18.01.2018, 21:33
Скорее всего страницы имеют разную кодировку, а функция неким неудачным образом работает с т.н. "bytestring", т.е. представлением бинарных данных в виде строки.

Обе страницы UTF-8. Заголовки запроса и ответа идентичны.

JS открывает файл с помощью FileReader readAsBinaryString.

Подскажите пожалуйста, есть другой способ прочитать и отправить файл, на чистом JS (без jQuery), чтоб исключить проблему? Не получается найти ответ самостоятельно

Aetae
18.01.2018, 23:25
Точно utf8? Кодирока указаная в meta charset - не обязательно истинна.
А что с кодировками подключаемых скриптов?
Посылает он файл в одно и то же место? Может проблемы с кодировкой уже на стороне сервера(что странно на самом деле)?