2011-06-05 38 views
1

我的SQL表中有十列:id,imgid,urlid,image1,image2,image3,image4,image5和註釋。 Id,imgid和urlid是int類型。圖片[1-5]是mediumblob類型。網址和評論是文字類型。 Imgid是上傳圖片的數量(最大值應該是5),urlid是提交的url數量(現在應該是一個),url保存網址,評論保存用戶評論。如何創建一個文件上傳表單,基於使用php輸入創建更多表單域?

表格首先詢問用戶他想上傳多少圖片(我的腳本中最大數目是5)。例如,如果用戶選擇了3,則應該使用新的提交按鈕創建3個文件上傳字段。名爲$ imgid的變量將存儲數字3,即用戶想要上傳的文件數量。用戶然後選擇3個圖像並單擊新創建的提交按鈕,將三個圖像提交到SQL表中的前三個圖像列。我的問題是,當我點擊第二個提交按鈕,點擊後,第一個出現,我得到這個錯誤:

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in dbpform2.php on line 75 

這是我到目前爲止做出:

<html> 
<body> 

<form action="dbpform2.php" method="POST"> 
How many images do you want to upload?<br> 
<input type="text" name="imgid" /><br /> 
<input type="submit" name="submit" value="submit" /> 
</form> 

<?php 
mysql_connect ("","","") or die(mysql_error()); 
mysql_select_db ("") or die(mysql_error()); 


$imgid = $_POST['imgid']; 

if (isset($_POST['submit'])) 
{ 
    echo"<form action='dbpform2.php' method='POST' enctype='multipart/form-data'> 
"; 

    if ($imgid >= 5) 
    { 
     for ($i=1; $i<= 5; $i++) 
     { 

     ${'img' . $i} = "img".$i; 
     echo "<input type='file' name='${'img' . $i}' /> <br />"; 

     } 

     echo" 
     <input type='hidden' name='imgid' value='$imgid' /> 
     <input type='submit' name='submit2' value='submit2' /> 
     </form>"; 
    } 

    if ($imgid <= 5) 
    { 
     for ($i=1; $i<=$imgid; $i++) 
     { 

     ${'img' . $i} = "img".$i; 
     echo "<input type='file' name='${'img' . $i}' /> <br />"; 

     } 
     echo" 

     <input type='hidden' name='imgid' value='$imgid' /> 
     <input type='submit' name='submit2' value='submit2' /> 
     </form>"; 
    } 
} 

?> 

<?php 

$imgid = $_POST['imgid']; 

for ($i=1; $i <= $imgid; $i++) 
{ 

${'img' . $i} = "img".$i; 
${'file' . $i} = $_FILES['${'.img.' . $i}']['tmp_name']; 

} 

    if (isset($_POST['submit2'])) 
    { 

     for ($i=1; $i<=$imgid; $i++) 
     { 
      ${'img' . $i} = "img".$i; 
      ${'file' . $i} = addslashes(file_get_contents ($_FILES['${'.img.' . $i}']['tmp_name'])); 

     } 

     mysql_query ("INSERT INTO dbp VALUES ('','$imgid','$urlid','$url', '$file1', '$file2','$file3','$file4','$file5','$comment')"); 

    } 
?> 



</body> 
</html> 
+2

呃,意大利麪代碼再次。人們真的要使用MVC .. – Pwnna 2011-06-05 04:49:35

+0

同意,你真的可能想重新考慮你的方法。 – 2011-06-05 04:52:02

+0

你爲什麼在php中而不是JavaScript? – SamGoody 2011-06-05 06:52:32

回答

1

$_FILES['${'.img.' . $i}']
替換爲
$_FILES[${'img' . $i}]

使用IDE編輯腳本,以避免這種愚蠢的錯誤。嘗試NetBeans,PhpStorm。
並嘗試閱讀約MVC

+0

感謝您的幫助。我基本上試圖使用YouTube教程,谷歌搜索,W3schools和這個網站儘可能快地填充PHP,所以看起來是一個愚蠢的錯誤是不明顯的。 – user701510 2011-06-05 22:27:15

相關問題