Обработка Javascript потока октетов php readfile - PullRequest
0 голосов
/ 14 октября 2010

ОК, я прочитал раздел «Смежные вопросы» и не нашел ответа.

Я использую ajax-запрос для принудительной загрузки php . На PHP все работает нормально. Допустим, у меня есть поток данных с именем DATA. Теперь я хочу открыть диалоговое окно «Сохранить как ...».

Браузер получил строку шестнадцатеричных значений. Теперь, что мне делать с этим DATA на стороне клиента (javascript)?

Это код PHP, который я использую, по ссылке выше:

header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=$file');
readfile($file);

Я пробовал

  • window.open (DATA) -> шестнадцатеричный поток не существует (конечно)
  • отправка формы с действием как DATA -> та же проблема

Кстати, если я эхо-файл из PHP, а затем использовать window.open, иногда это работает. Но не для текстовых файлов или jpgs и т. Д.

Я видел, как это работает на других сайтах - как они это делают? Заранее спасибо.

1 Ответ

0 голосов
/ 14 октября 2010

Вот ответ, который я искал:

window.open("downloadPage.php");

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

Браузер, по-видимому, интерпретирует это по-разному и не разрешает загрузку.

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