我有一个html文件,它允许用户提交文件以将文件发布到我的'upload_file.php'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上面引用需要在一个文件中,做了一些工作,并吐出(使用PHPExcel)一个XLSX文件。创建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错误上单击“yes”会导致“修复”的xlsx文件打开,看起来完全如人们所期望的那样。看着一个日志中这样做了修理的给了我这样的:\ XPATHX \ $ filename.xlsx'Excel 完成文件级验证和修复:
error129480_02.xmlErrors 文件 “C进行检测。此 工作簿的某些部分可能已被修复或丢弃了 。
......这就是说,没有什么特定的。
追踪问题,直接从服务器打开文件不会导致此错误;告诉我一些额外的事情正在上面的下载代码中进行。
我的问题是:什么可能导致这个和/或我该如何解决问题?