2012-10-01 97 views
-1

可能重複:
Unable to do File Upload in PHP在PHP上傳腳本

我想學寫文件上傳腳本PHP。我不知道爲什麼這不起作用。請看看


<?php 
$name=$_FILES["file"]["name"]; 

if(isset($name)) { 
    if(!empty($name)) { 
     echo $name; 
    } 
    else { 
     echo 'Please choose a file'; 
    } 
} 
?> 

它給出了一個錯誤信息Notice: Undefined index: file in


HTML部分是


<form action="submissions.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="file" id="file" /> 
<input type="submit" name="submit" value="Submit" /></form> 

我在Windows上使用wamp。什麼可能是錯誤的原因?

+3

線索在錯誤信息中。文件數組中不存在索引'文件'。有人猜測,因爲在你獲得表格之前你有這個代碼? –

+2

'var_dump($ _ FILES)'說什麼?它是否包含任何文件? –

+0

@JonStirling:是的..我在html表單部分之前有了php代碼。這可能是一個問題嗎? – OneMoreError

回答

1

線索在錯誤信息中。文件數組中不存在索引'文件'。有人猜測,因爲在你獲得表格之前你有這個代碼?

2

您需要檢查形式執行你的PHP代碼之前提交:如果

<?php 
if (isset($_POST["submit"]) && $_POST["submit"] === "Submit") { 

    if (isset($_FILES["file"]["name"])) { 
     $name = $_FILES["file"]["name"]; 

     if(!empty($name)) { 
      echo $name; 
     } 
     else { 
      echo 'Please choose a file'; 
     } 
    } 
} 
?> 
+1

You如果文件輸入字段沒有在表單中設置,則仍然存在與OP相同的問題。 –

+0

@JonStirling:這是怎麼回事?你有沒有看到我最近的編輯檢查'isset($ _ POST [「submit」])'? *編輯*:哦,沒關係,我明白你在說什麼。答案已更新。 – Travesty3

+0

Tbh,我現在完全困惑。你可能完全正確。如果空文件元素仍然在標題中發送,我無法記住我的頭頂。如果是(它很可能),那麼你以前的代碼是完全有效的。漫長的一天是懶惰的:P有人可能會澄清:) –

0

檢查它首先存在,

if(isset($_FILES['FormFieldNameForFile']) && $_FILES['FormFieldNameForFile']['size']>0){ # will be 0 if no file uploaded 

然後檢查你的場上組件的使用。

$_FILES['userfile']['name'] # The original name of the file on the client machine. 
$_FILES['userfile']['type'] # The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted. 
$_FILES['userfile']['size'] # The size, in bytes, of the uploaded file. 
$_FILES['userfile']['tmp_name'] # The temporary filename of the file in which the uploaded file was stored on the server. 
$_FILES['userfile']['error'] # The error code associated with this file upload