Интерфейс Javascript не загружает вложения IMAP через PHPJavascript

Форум по Javascript
Ответить
Anonymous
 Интерфейс Javascript не загружает вложения IMAP через PHP

Сообщение Anonymous »

У меня есть веб-страница на PHP, которая позволяет мне получить доступ к учетной записи IMAP. Я могу получать сообщения нормально. Но когда я нажимаю кнопку загрузки вложений (например, в GMail), Firefox сначала открывает диалоговое окно загрузки, а сразу после этого появляется другое окно с предупреждением, в котором говорится: «W227LcEc.png.part не может быть сохранен, поскольку исходный файл не может быть прочитан». И он не позволяет мне нажать кнопку «Сохранить» в диалоговом окне загрузки.
Однако я проверил вкладку «Сеть» в инструментах разработчика. Файл был получен правильно (код возврата 200), размер соответствует ожидаемому, и на вкладке «Ответ» я вижу содержимое файла, закодированное в Base64. Если я возьму этот контент и сохраню его в текстовый файл, декодирую Base64, у меня будет отлично работающий файл.
Я погуглил, нашел советы по поводу директив заголовков, но безрезультатно.
Я включаю только соответствующую часть обоих кодов.
Это мой код JavaScript:

Код: Выделить всё

var link_el = document.createElement("A");
link_el.href = 'https://my.server.com/webservice.php?attachment=d45w6d5c45a6s4d';
link_el.click();
А это мой PHP-код:

Код: Выделить всё

$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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»