2014-01-20 36 views
0

我一直在試圖將文件上傳到服務器但我得到未定義的索引錯誤,如下圖所示:上載音頻未定義指數 - WAMP

Notice: Undefined index: uploadFile in D:\test\getfile.php on line 7 
Notice: Undefined index: uploadFile in D:\test\getfile.php on line 8 

這是我的index.php:

<html> 
<head> 
    <title>File Upload Form</title> 
</head> 
<body> 
    This form allows you to upload a file to the server.<br> 
    <form action="getfile.php" method="post"><br> 
     Type (or select) Filename: <input type="file" name="uploadFile"> 
     <input type="submit" value="Upload File"> 
    </form> 
</body> 

這是getfile.php:

<html> 
<head> 
    <title>Process Uploaded File</title> 
</head> 
<body> 
    <?php 
     move_uploaded_file ($_FILES['uploadFile'] ['tmp_name'], 
       "../uploads/{$_FILES['uploadFile'] ['name']}") 
    ?> 
</body> 

我把他從另一個網站的代碼。這在他們的服務器上工作。

這是wamp。

+0

*總是*檢查密鑰是否實際存在使用例如。 'if(isset($ _ FILES ['uploadFile'])){}'。還應該補充一點,我希望你在'/ uploads /'中禁用執行,否則任何人都可以簡單地上傳一個PHP shell並破解整個服務器 - 獲取你的代碼 - 獲取你的數據庫證書 - 安裝病毒 - 獲取用戶密碼等等 – h2ooooooo

+0

@ h2ooooooo這只是測試。我試圖找出爲什麼它不工作。 – Efekan

+0

Ok point1 rtfm http://www.php.net/manual/en/features.file-upload.php。複製代碼可以讓你開始,但最終你會得到和最後一個懶惰人一樣的垃圾。在代碼中正確的文件上傳還有很多。 – RiggsFolly

回答

0

您需要添加enctype='multipart/form-data'在你的表單標籤

<form action="getfile.php" method="post" enctype='multipart/form-data'> 

enctype屬性指定用於表單提交給服務器(如果方法的值爲「後」)的內容類型。該屬性的默認值是「application/x-www-form-urlencoded」。值「multipart/form-data」應該與INPUT元素結合使用,type =「file」。

的index.php中

<form action="getfile.php" method="post" enctype='multipart/form-data'><br> 
    Type (or select) Filename: <input type="file" name="uploadFile"> 
    <input type="submit" name="submit" value="Upload File"> 
</form> 

在getfile.php:

<?php 
if(isset($_POST['submit'])){ 
     print_r($_FILES['uploadFile']); 
     move_uploaded_file ($_FILES['uploadFile']['tmp_name'], "../uploads/{$_FILES['uploadFile']['name']}"); 
    } 
?> 
+0

我已經添加這個即時通訊仍然收到錯誤。 – Efekan

+0

@キャタ,我已經更新了我的答案,請檢查 –

+0

我試過這個即時消息沒有更多的錯誤。但是,我現在無法找到上傳文件夾。 – Efekan

-2

您可以設置輸入(或選擇)文件名:<input type="file" name="uploadFile">

名= uploadFile

,並嘗試上傳$_FILES['uploadFile'] ['name'] ...

變化[ '名'][ 'uploadFile']

,並添加ENCTYPE =「的multipart/form-data的

+0

因此,我應該更改$ _FILES ['uploadFile'] ['name'] too $ _FILES ['uploadFile'] ['uploadFile'] – Efekan

+0

look in your html form字段中定義'name = uploadFile',並在你的php代碼中嘗試調用'name'。將$ _FILES ['uploadFile'] ['name']'更改爲'$ _FILES ['uploadFile'] ['uploadFile']' – Ivan

+0

這沒有奏效 – Efekan

0

添加enctype='multipart/form-data'到您的表單聲明。

+0

我已經添加這個即時通訊仍然收到錯誤。 – Efekan