2015-09-02 52 views
1

我使用ZipArchive庫下載內容作爲檔案。 問題是,歸檔文件沒有得到全名,就像給出的那樣,它的結尾處於第一個空格。例如:如果我給的文件名是「新file.zip」下載作爲檔案在Firefox中沒有得到完整的文件名

header('Content-disposition: attachment; filename = new file.zip'); 

在谷歌上搜索,我發現只是把引用的文件名,解決了這個問題。所以我想這:

header("Content-disposition: attachment; filename = 'new file.zip'"); 

,但沒有什麼變化,而下載的文件名更改爲「new.zip」,我必須得到的是「新file.zip」

的問題是隻firefox

+0

嘗試轉義名稱中的空白(技術文件名中的空白永遠不是個好主意......):'filename = new \ file.zip'。 – arkascha

+0

沒有任何變化,現在文件名變成新的\ .zip –

+0

如果您的查詢得到有效解決,您應該接受答案。 –

回答

1

設置內容類型爲application/zip, application/octet-stream,然後再進行文件下載,並在雙引號中包含filename

// We'll be outputting a ZIP 
header('Content-Type: application/zip, application/octet-stream'); 

// It will be called new file.zip 
header('Content-Disposition: attachment; filename="new file.zip"'); 

如果傳遞的變量名,可能有空格:

header("Content-Disposition", "attachment; filename=\"" . $fileName ."\""); 

注意,filenamedouble quotes包圍,每RFC 2231。這允許在文件名中使用擴展字符(即國際字符)。

+3

稍作修改: header(「Content-Disposition:attachment; filename = \」「。$ fileName。」\「」); –

+0

@rbvishnu編輯。 –

+0

答案只是部分正確;對Content-Type的改變是不正確的:它不是必需的,它是無效的(你不能指定兩種類型),並且它首先破壞了聲明類型的點。 –

相關問題