2011-01-14 107 views
1

TMP中上傳的圖片沒有文件擴展名?

上傳照片後,文件仍在TMP文件夾,當我耳邊迴響:

$_FILES['file']['tmp_name'] 

即時得到,例如:

/tmp/phpZnmIfT 

所以上傳的圖片是沒有擴展名?! 這是「正常」還是某些Php GD配置丟失?

在此先感謝

回答

3

PHP使用臨時名稱存儲文件,這是您所看到的。畢竟,兩個或兩個以上的人可能會上傳相同的「file.doc」,如果PHP使用該名稱將其存儲在服務器上,則會覆蓋另一個。

您可以用$_FILE['file']['name']檢索原始客戶端文件名。有關$ _FILE數組結構的詳細信息是here

+0

+1爲手冊參考 - 請注意(與有些人想相信),你不一定會得到原始的客戶端目錄路徑和文件名,只是文件名 –

+0

幸運的是,理智的瀏覽器去除了路徑信息,因爲這會有點隱私。 –

2

使用唯一(和臨時)名稱將文件上載到臨時目錄。

您必須將文件移動到最終位置並使用move_uploaded_file()進行適當的命名。

第一個用法示例是你想要的。

+0

我很新...謝謝:) – Bobo

0

如果您檢查上載的$_FILES陣列的其餘部分,您將獲得原始上載名稱以及上傳文件的MIME類型,您可以使用該MIME類型對文件執行進一步的操作上傳後(如上一張海報所示,使用move_uploaded_file()進行移動/重命名)。

0

是的,這是正常的。文件類型(MIME類型)存儲在$_FILES['userfile']['type']