这是我的输入字段..
<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
答案 0 :(得分:2)
有一个专门的功能。请丢弃copy
代码并使用move_uploaded_file。
该错误是由您尝试访问$_FILES['uploaded_file[]']
而导致的,该[]
不存在。 PHP将以$_FILES['uploaded_file'][0]
结尾的post / get变量解释为数组;您感兴趣的文件可能位于var_dump($_FILES)
。
请学习调试简单的PHP应用程序。尝试$_FILES
开始,它会准确地告诉您{{1}}数组中的内容。
答案 1 :(得分:1)
PHP自动将以[]
结尾的HTML表单元素转换为数组,因此,访问数组的0
nt元素:
$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()
代替copy()
。
答案 2 :(得分:1)
使用
$_FILES['upload_file'][0]['tmp_name']
你的一个不起作用,因为[]是一个数组