copy()函数错误

时间:2011-09-07 18:54:48

标签: php

这是我的输入字段..

<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

3 个答案:

答案 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']

你的一个不起作用,因为[]是一个数组