2012-07-05 112 views
0

下面的表格是我的網頁html頁面PHP上傳腳本問題

<form action="upload_file.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
<br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

上這是PHP

<?php 

    if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/png") 
    || ($_FILES["file"]["type"] == "image/jpg") 
    || ($_FILES["file"]["type"] == "image/pjpeg")) 
    && ($_FILES["file"]["size"] < 200000000000)) 
     { 
     if ($_FILES["file"]["error"] > 0) 
     { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
     } 
     else 
     { 
     echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
     echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 

     if (file_exists("pics/2012/Blackhall Primary/" . $_FILES["file"]["name"])) 
      { 
      echo $_FILES["file"]["name"] . " already exists. "; 
      } 
     else 
      { 
      move_uploaded_file($_FILES["file"]["tmp_name"], 
      "pics/2012/Blackhall Primary/" . $_FILES["file"]["name"]); 
      echo "Stored in: " . "pics/2012/Blackhall Primary/" . $_FILES["file"]["name"]; 
      } 
     } 
     } 
    else 
     { 
     echo "Invalid file"; 
     } 
    ?> 

當我按下選擇的形式,沒有劇本。它工作正常。帶有表單的頁面被稱爲upload pictuture.html,scriptt被稱爲upload_file.php,它們都在根目錄下並且文件夾pics/2012/blackhall primary存在,並且pics目錄也位於根目錄中。

這是工作,但不是任何人都可以看到我做的任何錯誤。

感謝 羅斯

+0

它是否回顯文件信息?您是否嘗試刪除文件夾名稱中的空格?你檢查了error_log嗎? – Mustafa 2012-07-05 14:53:47

+0

不,它不回聲 – Ross 2012-07-05 14:55:01

回答

1

更改權限,由誰來執行腳本(通常www數據的Apache2) - 此帳戶必須具有寫和可能的讀取權限目錄,其中的圖片上傳。

無論如何,檢查基於$_FILES["file"]["type"]文件類型不是安全的。這可能很容易被黑客僞造。