2012-10-02 103 views
1

所以我發佈一個較早的問題在這裏:uploadHTML/PHP文件上傳不接受

我試過的解決方案,但現在不管它是正確的文件類型或沒有,它只是說「無效文件」。這裏是我的html:

<form action="upload_file.php" method="post" enctype="multipart/form-data" target="my_iframe"> 
    Select a file: <input type="file" name="upload"> 
    <input type="submit"> 
</form> 

這是我的upload_file.php:

$allowedExts = array("doc", "docx"); 
    $extension = end(explode(".", $_FILES["file"]["upload"])); 

    if (($_FILES["file"]["size"] < 200000) 
    && in_array($extension, $allowedExts)) { 
     if ($_FILES["file"]["error"] > 0) 
     { 
      echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
     } 
     else 
     { 
      echo "Upload: " . $_FILES["file"]["upload"] . "<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("Proposals/" . $_FILES["file"]["upload"])) 
      { 
       echo $_FILES["file"]["upload"] . " already exists. "; 
      } 
      else 
      { 
       move_uploaded_file($_FILES["file"]["tmp_name"], 
       "Proposals/" . $_FILES["file"]["upload"]); 
       echo "Stored in: " . "Proposals/" . $_FILES["file"]["upload"]; 
      } 
     } 
    } else { 
     echo "Invalid file"; 
    } 

我也試過:

$extension = pathinfo($_FILES["file"]["upload"], PATHINFO_EXTENSION); 

,做了

die($extension); 

在兩個但是什麼都沒有獲得打印。所以我有兩個問題
1)我的上述代碼有什麼問題
2)如何隱藏iframe直到我收到回覆?然後有一個好的按鈕就可以讓它在用戶閱讀響應後消失?下面是iframe的代碼,如果有幫助:

<iframe name="my_iframe" src="upload_file.php"></iframe> 

回答

2

變化

$_FILES["file"]["upload"] 

$_FILES["upload"]["name"] 

無處不在,一樣與其他參考..所以;

$_FILES["file"]["size"] **To** $_FILES["upload"]["size"] 

而且

$_FILES["file"]["type"] **To** $_FILES["upload"]["type"] 

而且

$_FILES["file"]["tmp_name"] **To** $_FILES["upload"]["tmp_name"] 
+0

搜索了一個錯誤,更換'$ _FILES [ 「文件」]'和'$ _FILES ['上傳']'應該這樣做 –

1

您有:

if (($_FILES["file"]["size"] < 200000) && in_array($extension, $allowedExts)) { 

它應該是$ _FILES [ 「上傳」] [ 「大小」],因爲你有

<input type="file" name="upload"> 
1

變化

$_FILES["file"]["size"] 

$_FILES["upload"]["size"] 

,並做了所有其他瓦爾一樣,輸入文件的名稱屬性是上傳,不文件,根據您的HTML:

<input type="file" name="upload"> 
        HERE ----^ 
相關問題