多次上传php


multiple upload php

我遇到了一个问题,

我已经创建了一个multiply uploader,它运行良好,直到我希望上传的文件在数据库中注册名称,我收到的错误信息是

警告:mysql_real_eescape_string()要求参数1为字符串,第16行C:''wamp''www''bookstyled''profile.php中给出的数组

我的第16行是变量file_name

$file_name = mysql_real_escape_string($_FILES['file_name']['name']);

如果我删除mysql_real_eescape_string,它实际上会保存到数据库中,但不是作为文件名,而是写着"Array"

这是的一些代码

if(isset($_FILES['file_name'])) {
    foreach ($_FILES['file_name'] ['tmp_name'] as $key => $tmp_name){
$file_name = mysql_real_escape_string($_FILES['file_name']['name']);

$dt1=date('y-m-d H:m:s');
$ip=$_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO `files` (`file_name`, `user_name`,`file_time`,`file_ip`) VALUES ('$file_name', '{$_SESSION['username']}','$dt1','$ip')") ; 
move_uploaded_file($tmp_name, "core/files/{$_FILES['file_name']['name'][$key]}");
}
}

如果我没提正在上载文件。

感谢

您已经启用了多次上传。所以我猜字段的html名称是数组。例如:

<input type="file" name="file_name[]" multiple="multiple">

现在$_FILES['file_name']['name']在一个数组中不包含一个文件,而是包含多个文件。

每个文件都通过单独访问

$_FILES['file_name']['name'][$i] //where $i is a 0,1,2.....

由于您正在使用

$file_name = mysql_real_escape_string($_FILES['file_name']['name'])

函数mysql_realescape_string没有被赋予一个字符串作为参数,而是一个完整的数组,其中包含上传到filename的每个文件。

解决方案很简单,您需要使用

file_name = mysql_real_escape_string($_FILES['file_name']['name'][$key]) 

$key,因为我看到您已经在move_upload_file函数中使用了它

如果您更改此

$file_name = mysql_real_escape_string($_FILES['file_name']['name']);

到这个

$file_name = mysql_real_escape_string($_FILES['file_name']['name'][$key]);

当你在句子move_uploaded_file($tmp_name, "core/files/{$_FILES['file_name']['name'][$key]}");中使用这个[$key]时,我认为你也应该在第16行使用。

看起来$_FILES['file_name']['name']是一个数组,而不是字符串,所以请尝试$_FILES['filename']['name]['key']

未测试,但可以工作。

if(isset($_FILES['file_name'])) {
    foreach ($_FILES['file_name'] as $file){
       $file_name = mysql_real_escape_string($file['tmp_name']);

       $dt1=date('y-m-d H:m:s');
       $ip=$_SERVER['REMOTE_ADDR'];
       mysql_query("INSERT INTO `files` (`file_name`, `user_name`,`file_time`,`file_ip`) VALUES ('$file_name', '{$_SESSION['username']}','$dt1','$ip')") ; 
       move_uploaded_file($tmp_name, "core/files/{$file['name']}");
    }
}
相关文章:
  • 没有找到相关文章