2011-09-07 38 views
-3

這裏是我的輸入字段..副本()函數錯誤

<input type="file" name="upload_file[]" value="" id=" "/> 

$attach = $_FILES["upload_file[]"]["name"]; 
$sql = "insert into uploadfile(CAT_ID, SUB_CAT_ID, TAG, DESCRIPTION, UF_NAME, UF_NAME1 , GENRE) values('".$category."','".$subcategory."','".$tag."','".$optionaldescription."','".$attach."','".$attach."','".$genre."')"; 
copy($_FILES['upload_file[]']['tmp_name'], "upload/".$_FILES['upload_file']['name']); 
mysql_query($sql); 

Warning: copy() [function.copy]: Filename cannot be empty in C:\xampp\htdocs\test\index.php on line 48 
+2

...的Java?這是怎麼回事? –

+2

@John:得到一些睡眠 - 它有助於在這種情況下:-) –

+0

是否需要包括格式錯誤的SQL(可能無法正確轉義)? – ajreal

回答

1

PHP自動轉換在[]端到陣列HTML表格元素,因此,訪問陣列的0 NT元件:代替copy()

$attach = $_FILES["upload_file"][0]["name"]; 
$sql = "insert into uploadfile(CAT_ID, SUB_CAT_ID, TAG, DESCRIPTION, UF_NAME, UF_NAME1 , GENRE) values('".$category."','".$subcategory."','".$tag."','".$optionaldescription."','".$attach."','".$attach."','".$genre."')"; 
copy($_FILES['upload_file'][0]['tmp_name'], "upload/".$_FILES['upload_file'][0]['name']); 
mysql_query($sql); 

此外,還應該使用move_uploaded_file()

2

有一個專門的函數,該函數。請丟出您的copy代碼並使用move_uploaded_file

該錯誤是由於您嘗試訪問$_FILES['uploaded_file[]']而導致的,這種情況不會存在。 PHP會將以[]結尾的post/get變量解釋爲數組;你感興趣的文件可能是坐在$_FILES['uploaded_file'][0]

請學習調試您的簡單PHP應用程序。嘗試var_dump($_FILES)開始,它會告訴你到底是$_FILES陣列中的內容。

1

使用

$_FILES['upload_file'][0]['tmp_name']

你一個不工作,因爲[]是一個數組