У меня есть html-файл, который позволяет пользователю отправить файл, чтобы отправить файл на мой скрипт PHP 'upload_file.php'.Файл, загруженный с PHP-скрипта, отличается от файла на сервере
index.html:
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
upload_file.php ссылки выше занимает в файле, делает какую-то работу, и выкладывает файл XLSX (используя PHPExcel). После создания объекта PHPExcel, это то, как я пишу его на сервер, а затем заставить пользователя загрузить:
// Save Excel 2007 file
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$fileBase = explode(".",$_FILES['file']['name']);
$outFilename = $fileBase[0] . date('His') . ".xlsx";
$objWriter->save($outFilename);
$url = "http://localhost/QWDATA/$outFilename";
//Initiate user download of file
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"$outFilename\"");
echo readfile($url);
Когда я делаю это, загрузка успешно инициирована ... с одним вопросом:
Открытие файла, загружаемый приводит к ошибке в Excel:.
«мы обнаружили проблему с некоторым содержанием в $ файла вы хотите, чтобы мы попытки восстановить столько, сколько мы можем Если вы доверяете? источник этой книги , нажмите «Да».
Нажатие «да» на ошибке excel приводит к открытию файла «восстановленного» xlsx и выглядит точно так, как можно было бы ожидать. Глядя на журнал ремонтов, которые были сделаны дает мне это:
error129480_02.xmlErrors были обнаружены в файле «C: \ XPATHX \ $ filename.xlsx'Excel проверки и ремонта завершено на уровне файлов. Некоторые части этой книги , возможно, были отремонтированы или отброшены.
... то есть ничего конкретного.
Отслеживание проблемы назад, открытие файла непосредственно с сервера НЕ приводит к этой ошибке; сообщая мне, что в приведенном выше коде загрузки происходит что-то еще.
Мой вопрос: что может быть причиной этого и/или как я могу решить проблему?