2010-05-08 69 views
0

我建立一個網站,用戶可以上傳自己的MP3和我遇到了一個小問題的空間,我解決不了:PHP MP3上傳與文件名

上傳工作正常,但只有當用戶選擇一個在其mp3-filename中沒有空格的mp3文件。像'我的漂亮的mp3 file.mp3'這樣的文件會產生$ _FILES ['file']的NULL。這與服務器配置有關嗎?

任何人都有一個想法如何解決?除了告訴用戶只是上傳mp3files沒有他們的名字空間,這是:-)

感謝名單,

Maenny

+0

這是發生在每一個瀏覽器/你是否使用一些客戶端腳本來增強上傳選項(即閃存多文件選擇)? – 2010-05-08 14:15:17

+0

不,我沒有增強上傳選項,但atm我只測試了Firefox和Chrome上的腳本 – Maenny 2010-05-08 15:25:09

回答

0

遠程(客戶端)文件的文件名應該不會影響它是如何運送到服務器。你確定空間是問題嗎?

+0

是的,我相信,以後再見評論兩個答案。 – Maenny 2010-05-08 13:34:14

0

嘗試urlencode()您的文件名。

如果這不起作用,請嘗試rawurlencode()。

如果不工作,我過大關:)

+0

我會盡力,謝謝你的建議 – Maenny 2010-05-08 13:34:39

+0

只要確定:你將如何處理編碼?也就是說,當我應該urlencode()。我有一個和action =「myscript.php」的表單。在myscript.php中,我使用$ _FILES ['file']。我必須編碼$ _FILES-var嗎? – Maenny 2010-05-08 16:48:44

+0

這可能不是PHP問題。這是在Windows上嗎?有某些版本的IE有已知的問題。如果這是你的問題,PHP甚至沒有得到該文件。 – 2010-05-08 19:09:07

1

由於其他用戶已經表示,它可能不是導致問題的空間。我的第一個想法是檢查你的PHP的upload_limit設置得足夠高。還要記住,無論用戶調用他們的文件是什麼,您都不應該將它與該文件名一起存儲在服務器上 - 這樣做存在潛在安全漏洞的風險太大。

爲了診斷這個問題,我建議創建一個MP3文件,你知道是好的,製作2個副本 - 用空格命名一個,沒有一個名稱。然後看看是否有空格失敗。如果是這樣的話,那麼至少你知道你確實找到了你的問題的根源 - 如果沒有,那麼你已經消除了一個可能的原因,你可以看看其他地方。

+0

嗯,我完全是這樣 - 與空格相同的文件將無法正常工作,wothout完美的作品。是的,我重命名所有文件上傳到服務器,但不過,如果我有一個NULL作爲$ _FILES ['文件']我沒有什麼可重命名...而且我還將PHP的upload_limit設置爲我在腳本中聲明的文件大小限制的兩倍...... – Maenny 2010-05-08 13:33:17

+0

php.ini設置file_uploads設置爲On?我正在用盡可能的原因,爲什麼會發生這種情況。 – 2010-05-10 06:10:35

+0

當然,如果不是,file_upload根本不起作用,不是嗎? – Maenny 2010-05-11 14:43:17

0

空格不應該導致此問題。我的網站上有一個MP3上傳器,並且沒有空間問題。我已經用「Test Name.mp3」進行了測試,它工作正常。

http://www.the-mag.me.uk/Music/Articles/Item/Add-Your-Music/

爲幫助診斷任何潛在的問題,嘗試傾出$ _FILES數組的內容,並查看是否在有什麼事情給你一個線索。

print_r($_FILES); 
+0

那麼print_r($ _ FILES)的結果是NULL,但只有在名稱中有空格時才如此。 – Maenny 2010-05-11 14:42:27