2011-09-07 50 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']

你一个不工作,因为[]是一个数组