2014-02-20 70 views
0

我試圖上傳圖像並立即將它們傳輸到特定文件夾。php move_uploaded_file,移動時圖像變成小紅色x圖標

這裏是我的代碼:

$file_path = "assets/placervw_photo/"; 
    $file_path = $file_path . $_FILES['uploaded_file']['name']; 
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) 
    { 
     echo "success"; 
    } 

該頁面顯示「成功」,但是當我檢查的文件夾,其中包含了文件,具有相同的文件名和文件類型,但它變成一個SMaL公司紅色的X圖標有白色背景。這裏有一個看看:http://s14.postimg.org/ifoiyzde5/red_x.png

我已經測試它到JPG和PNG文件,他們有相同的結果。

關於如何解決這個問題的任何建議?提前致謝! :)

回答

1

「小紅X」是您的瀏覽器「說這裏沒有圖像」的方式。

您是否想要顯示圖像在您上傳的同一頁中?您不能。您已經發送了一些不是圖片的內容,因此嘗試向瀏覽器發出「我在這裏有一張圖片」的信號會讓您看到一個小紅色的X.

您需要發送一個帶有正確URL前綴的IMG URL:

$url = "http://yourserver.com/path/to/".$file_path; 

echo "Success, here's your image: <img src=\"$url\" />"; 

你可能也做得很好,不信任用戶的文件名,但指定您所選擇的隨機ID,還驗證它確實是一個圖像(你可以使用getImageSize(),也驗證擴展名是否匹配MIME類型)。以防萬一有人向你發送一個名爲「../../../pwn3d.php」的圖片:它已經被發現。