我有一個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進行檢測。此 工作簿的某些部分可能已被修復或丟棄了 。
......這就是說,沒有什麼特定的。
追蹤問題,直接從服務器打開文件不會導致此錯誤;告訴我一些額外的事情正在上面的下載代碼中進行。
我的問題是:什麼可能導致這個和/或我該如何解決問題?