Потеря .docx при загрузке на/с сервера на php

197
07 декабря 2017, 01:38

Есть два скрипта. 1- закачивает с формы файл на сервер

req.open("POST", url, true);
req.setRequestHeader("Content-Type", "application/octet-stream");
+
reader.readAsBinaryString(f);

после чего сохраняется в файле. 2 скрипт отдает файл

header('Content-Description: File Transfer');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header("Content-Disposition: attachment; filename='$fileName");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($fileName));
echo readfile($fileName);

Но при скачивании ворд пишет что файл поврежден, что может быть, что делать?

Answer 1

Ваши скрипты где-то выводят еще что-то до того, как вы начнете отдавать файл.

Попробуйте закомментировать строку отдачи файла:

// echo readfile($fileName);

Затем скачайте файл. Если он будет не нулевого размера, как должен, значит проблема именно такая.

READ ALSO
Вывод часов и минут из секунд

Вывод часов и минут из секунд

Есть число "4800" в минутах, как из него получить вывод "3 дня 3 часа 29 секунд" ?

222
Настройка отправки почты с сайта (БЕЗ использования PHPMailer!)

Настройка отправки почты с сайта (БЕЗ использования PHPMailer!)

Почта с сервера, отправленная мне или другим людям, приходит в спам

201
Поиск по нескольким параметрам RedBeanPhp

Поиск по нескольким параметрам RedBeanPhp

Возможно ли осуществлять поиск по БД при помощи RedBeanPHP по нескольким параметрам? Что-то вроде такого:

320
Переменная PHP в MySQL запросе превращается в 0

Переменная PHP в MySQL запросе превращается в 0

Есть переменная $ch_id, которая берется из массива и по началу берется правильноHTML форма:

204