2014-02-05 17 views
0

我有一個系統保存某些表格行的文件(附件)。這意味着文件名可能會有些相同。我試圖找到一種方式來存儲文件的方式,我可以稍後查找行ID,文件名或文件ID並提供該文件下載。有沒有辦法從服務器上顯示的內容提供不同的文件名?

我有以下想法。

  1. 的每一行,我將創建一個文件夾,每個文件夾排我將創建一個文件編號另一個文件夾中,然後內持有的文件。現在問題在於處理目錄,有時權限也可能成爲問題。

  2. (我喜歡這個方法更多)有1個文件夾的所有文件,文件名將由行ID,文件ID和文件名組成。

我的問題是可以說,我使用的方法2,文件名是一樣的東西:12212.18.this is file name.jpeg

有沒有辦法爲我服務於這個文件一樣:這是文件name.jpeg ?

如果有3/4的方法,你可以認爲這更好。會很好。

謝謝。

+0

你可以通過它通過一個PHP腳本,並更改​​文件名 – cmorrissey

+0

如何通過一個PHP腳本我正在與PHP工作一段時間,現在不能想辦法做到這一點。 –

+0

查看此解決方案:http://serverfault.com/a/316817/88886 - 您需要根據您所服務的內容更改「Content-type」。如果你只使用默認的'application/octet-stream',那麼它將強制爲所有類型的文件下載文件。 – degenerate

回答

3

使用PHP打開/讀取文件,然後用任何名稱將其推送到瀏覽器。

header('Content-Disposition: attachment; filename="your_file_name.jpg'); 

您可能需要設置其他標題 - 例如,內容類型 - 最好閱讀@http://us2.php.net/manual/en/function.header.php

+0

有史以來最好的答案。 – PlantTheIdea

+0

所以基本上流到它? –

+0

我想我明白了,基本上我會創建一個採用文件名的頁面,然後使用內容處置服務器的真實文件..對嗎? –

0

Content-Disposition header會讓你這樣做。但是這是假設你想提供文件供用戶下載並保存在他們的硬盤上。如果您只想提供包含在網頁上的圖片,爲什麼還要考慮文件名呢?

+0

其節省HD。 –

相關問題