PHP,多个文件上传,并获取每个文件上传到mysql的路径
我找到了这个代码,可以上传多个文件 我修改了一点代码,以获得上传/子目录文件夹,每个上传集都有唯一的id;所以这些文件也会得到一个唯一的idPHP,多个文件上传,并获取每个文件上传到mysql的路径,php,mysql,file-upload,upload,Php,Mysql,File Upload,Upload,我找到了这个代码,可以上传多个文件 我修改了一点代码,以获得上传/子目录文件夹,每个上传集都有唯一的id;所以这些文件也会得到一个唯一的id $dir=substr(uniqid(),-7); // Uniqid for subdirectory $path = "uploads/$dir/"; // uploads/subdirectory/ mkdir($path, 0700); // Make directory $valid_formats = array("jpg", "png", "
$dir=substr(uniqid(),-7); // Uniqid for subdirectory
$path = "uploads/$dir/"; // uploads/subdirectory/
mkdir($path, 0700); // Make directory
$valid_formats = array("jpg", "png", "jpeg", "kml");
$max_file_size = 2097152;
$count = 0;
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
$ext = pathinfo($_FILES['files']['name'][$f], PATHINFO_EXTENSION);
$uniq_name = substr(uniqid(),-5) . '.' .$ext;
$dest = $path . $uniq_name;
move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest);
mysqli_query($dbc, "INSERT INTO files (code, name, path, type) VALUES ('$dir','$uniq_name','$dest','$ext')" );
$count++; //Number of successfully uploaded file
}
}
}
}
此过程正确执行
我想在移动上传文件后,获得上传文件的所有路径。
但我在数据库中只插入了第一个选定文件的路径。。。其他路径文件已正确上载,但未插入数据库
对不起,我的英语不好,它不是我的第一语言。我希望你能帮助我 试试看
$sql_error = ''; // add this before you start the loop
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest)){
$qry = "INSERT INTO files (code, name, path, type) VALUES ('$dir','$uniq_name','$dest','$ext')" ;
$result = mysqli_query($dbc, $qry);
if ( false===$result ) {
$sql_error .= 'Error in the query '.$qry.' Error Desc :'.mysqli_error($dbc).'<br /><br />' ;
}
}
因此,如果有任何错误,它将在查询中显示错误
还可以通过将查询添加到
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest)){}
表示仅在上载文件时添加
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest)){}