Однако я проверил вкладку «Сеть» в инструментах разработчика. Файл был получен правильно (код возврата 200), размер соответствует ожидаемому, и на вкладке «Ответ» я вижу содержимое файла, закодированное в Base64. Если я возьму этот контент и сохраню его в текстовый файл, декодирую Base64, у меня будет отлично работающий файл.
Я погуглил, нашел советы по поводу директив заголовков, но безрезультатно.
Я включаю только соответствующую часть обоих кодов.
Это мой код JavaScript:
Код: Выделить всё
var link_el = document.createElement("A");
link_el.href = 'https://my.server.com/webservice.php?attachment=d45w6d5c45a6s4d';
link_el.click();
Код: Выделить всё
$data = imap_fetchbody($imap_instance,$message_id,$attachment_partno,FT_UID | FT_PEEK);
if ($encoding == 4) {
$data = quoted_printable_decode($data);
} elseif ($encoding == 3) {
$data = base64_decode($data);
}
header('Content-Type: '.$mimetype);
// Force the browser to download the file as an attachment
header('Content-Disposition: attachment; filename="'.$filename.'"');
// Specify the file size for download progress indicators
header('Content-Length: '.$filesize);
// Prevent caching of the file
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');
echo $data;
Подробнее здесь: https://stackoverflow.com/questions/798 ... hrough-php
Мобильная версия