2011-06-04 54 views
0

當用戶輸入他想要上傳的文件數量時,我正在創建一個頁面,然後在提交到另一個頁面上傳文件後,該頁面再次用表單呈現。
但是我收到一個錯誤[如果我上傳1個文件,否則問題是userfile的[極限-1]
Notice: Undefined index: userfile0 in E:\wamp\www\uploader\uploader.php on line 10文件上傳的動態數量 - PHP

我在這裏貼我的代碼 的index.php

<html> 
<?php 
if (isset($_POST['num']) && !empty($_POST['num'])) 
{ 
?> 
<form name="uploader" action="uploader.php" method="post"> 
<table> 
<tr><td>Title</td><td>Select File</td><td>Description</td></tr> 
<input type="text" name="number" value="<?php echo $_POST['num']; ?>"/> 
<?php 
for ($i=0;$i<$_POST['num'];$i++) 
echo '<tr><td><input type="text" name="title'.$i.'"/></td> 
      <td><input type="file" id="userfile'.$i.'" name="userfile'.$i.'" size="30"></td> 
      <td><textarea name="desc'.$i.'" rows="4"></textarea></td></tr>'; 
?> 
</table> 
<input type="submit" name="b" value="Submit"/> 
</form> 
<?php 
} 
else 
{ 
?> 
<form name="form" method="post"> 
How many files to upload ? <input type="text" name="num" value="1"/> 
<input type="submit" value="Submit"/> 
</form> 
<?php 
} 
?> 
</html> 

uploader.php

<?php 
if (isset($_POST['number'])) 
{ 
for ($slot = 0; $slot < $_POST['number']; $slot++) 
{ 
    $title = $_POST["title$slot"]; 
    $desc = $_POST["desc$slot"]; 
    if (move_uploaded_file($_FILES["userfile$slot"]['tmp_name'],$_FILES["userfile$slot"]['name'])) 
    echo $name.' file Uploaded !'; 
    else 
    echo ' file not Uploaded ! '; 
} 
} 
?> 

Edit
刪除的SQL代碼

+0

之前點擊_DOWN/CLOSE_ vote plz **提你的理由** !!! – Sourav 2011-06-04 08:33:25

+0

你見過這個手冊頁嗎? [上傳多個文件](http://php.net/manual/en/features.file-upload.multiple.php) – hakre 2011-06-04 09:24:07

+0

@hakre不,但是爲什麼? – Sourav 2011-06-04 09:24:51

回答

2

您需要在<form>標籤的enctype="multipart/form-data",否則就不能上傳文件/ PHP無法讀取它。

+0

OMG,你是對的人:)謝謝 – Sourav 2011-06-04 09:23:00

1

在嘗試上傳文件之前,您還應該檢查文件的存在性。

if (isset($_FILES['userfile'.$slot])) ... 
+0

問題是PHP總是說$ _FILES ['userfile0']不存在,但是當我查看它存在的HTML代碼時!但thnx爲你的幫助:) – Sourav 2011-06-04 09:11:32