我有一個非常標準的文件上傳形式(這也寫入到MySQL數據庫)。在我的測試中它工作得很好,然後我去測試一個用大寫字母命名的文件。該文件不會上傳。簡單的解決方案我想,只需在上傳之前用'strtolower'重命名文件,但沒有運氣。還嘗試了strtoupper,仍然沒有運氣。我想我也遇到了以數字開頭的文件。 (我做了仔細檢查,是的文件夾是可寫的。)php文件上傳大寫文件名問題
$upload_dir = "/path/to/the/upload/folder/entries/";
$new_filename = mysql_insert_id()."_".$filename;
$tmp_name = $_FILES["filename"]["tmp_name"];
move_uploaded_file($tmp_name, $upload_dir . $new_filename);
任何幫助是非常讚賞。
在您的代碼中看不到任何問題。在我的應用程序中,人們每天都用各種奇怪的名字上傳文件。從未遇到大寫或數字問題。你確定'mysql_insert_id()'打印什麼嗎?或者有什麼機會破壞代碼?你爲'$ filename'分配了什麼? – Nirmal 2010-01-01 03:23:19
$ filename是在代碼中設置的,並且等於$ _FILES [「filename」] [「name」] 我對這個問題做了一些更多的研究,看起來它可能不是大寫字母,它是實際上沒有找到我想上傳的圖像文件上的文件類型(我做了一個回聲$ _FILES [「文件名」] [「類型」],它什麼都沒有返回)。但是,當我在Finder中檢查文件的屬性時,它清楚地顯示文件類型是jpeg。我真的被困在這裏,所以謝謝你的幫助。 – jmarx34 2010-01-01 03:40:45