背景:關閉選項以從網站在Internet Explorer中打開xls文件?
我已經建立了一個客戶端的Web應用程序,允許他們將Excel文件保存到服務器。
當我第一次構建應用程序時,我將這些文件存儲在上傳文件夾中,並直接從應用程序中的頁面(例如文件)鏈接到它們。
經過反思,這並不是非常安全,所以我更改了上傳文件以將文件存儲在Web根目錄上,從而防止直接訪問。
我通過php'Retriever'文件(例如File)將文件傳回給用戶。該文件(有些用戶認證檢查後)看起來是這樣的:
header("Content-type: application/octet-stream");
$_file = $_GET['filename'];
$sPattern = '/\s*/m';
$sReplace = '';
$_strippedfile = preg_replace($sPattern, $sReplace, $_file);
header("Content-Disposition: attachment; filename=".$_strippedfile."");
echo file_get_contents('/var/www/uploads/'.$_file);
問題:
以上,除非用戶選擇「打開」,而不是在Internet Explorer中「拯救」一切工作正常。 Excel試圖打開文件並拋出'...找不到。檢查文件名稱的拼寫,並驗證文件位置是否正確。
我google了那個錯誤,它似乎是做的文件名(包括路徑)的長度。不幸的是臨時互聯網文件的路徑超出了我的控制範圍,所以想知道是否有強制用戶保存文件而不是打開它的方法? [顯然這可以在本地配置,但a)我的客戶不是很技術,b)因爲他們在公司網絡上,所有管理員權限都被束縛。]
歡迎任何其他想法。
我remeber用_underscores保換周圍有與文件名和IE的空間問題,gettingg。 – 2010-02-09 13:35:52
感謝您的快速響應。看起來你對特殊字符是正確的,但Internet Explorer似乎將它們自己放入!?它似乎是保存與額外的方括號,例如文件。 myfile [1] .xls在臨時Internet文件中,即使我清除了臨時Internet文件夾。我已經用Firefox測試過,並且保存爲myfile.xls。離奇。有任何想法嗎? – Derek 2010-02-09 13:56:11