ОК, название не дает особого смысла, поэтому позвольте мне объяснить мою очень странную схему.
Участвуют два сервера:
Рабочий процесс выглядит следующим образом:
Запрос сделан и архив сделан — все хорошо. Архив открыт, все хорошо. Сейчас я застрял в том, как передать этот архив как ответ AJAX, чтобы его можно было «собрать заново» (как Шалтай-Болтай). Когда я делаю это в настоящее время (через file_put_contents()
) это ошибки при открытии, говоря, что это недействительно. В настоящее время я просто выводю необработанные данные архива:
echo file_get_contents('path/to/archive.zip');
Это нормально, но отправляет искаженные символы в ответ. Я не знаю много о кодировке и заголовках, поэтому извиняюсь, если это кажется очевидным.
Для ответа, я должен искать преобразовать это в двоичный файл, или посылать определенные заголовки и т. Д.? Я попытался отправить заголовок multipart / form-data, но без кубиков. Заголовки не моя сильная сторона.
пожалуйста, обратите внимание CURL не вариант в этом сценарии, иначе я буду смеяться.
Вы должны прочитать zip-файл как двоичные данные с классом JavaScript Blob.
Это фрагмент кода из документации Mozilla
var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";
oReq.onload = function(oEvent) {
var blob = new Blob([oReq.response], {type: "application/octet-stream"}); //
// you have nothing to do with the blob...
// ...
};
oReq.send();
Других решений пока нет …