【发布时间】:2020-05-03 01:40:25
【问题描述】:
通过 foreach 循环工作的其他查询。但是为数组的第一个索引上传文件。这不是多个文件上传。我想为每个用户上传不同名称的相同文件。
foreach($_POST['groupmem'] as $user){
//Some Queries
$filename2 = str_replace(" ", "_","{$user}.{$_FILES['proposal']['name']}");
$destination2 = '../img/proposal/' . $filename2;
$extension2 = pathinfo($filename2, PATHINFO_EXTENSION);
$file2 = $_FILES['proposal']['tmp_name'];
$size2 = $_FILES['proposal']['size'];
if (!in_array($extension2, ['zip', 'pdf', 'docx'])) {
echo "You file extension must be .zip, .pdf or .docx";
} elseif ($_FILES['proposal']['size'] > 200000000) { // file shouldn't be larger than 200Megabyte
echo "File too large!";
} else {
if (move_uploaded_file($file2, $destination2)) {
$sql = "UPDATE project SET proposal_name='$filename2' WHERE u_id='{$user}' ";
if (mysqli_query($conn, $sql)) {
echo "File uploaded successfully";
}
} else {
echo "Failed to upload file.";
}
}
}
【问题讨论】:
-
你不能在循环内做 move_uploaded_file
-
您只需进行第一次上传,然后在 move_uploaded_file 之后复制不同文件名的文件
-
@AntonioAbrantes 感谢老兄的解决方案。它有效。你节省了我的时间。谢谢。
-
天哪,别忘了点击绿旗关闭问题
-
感谢您的了解.. @Dharman 我如何跳过除了 mysqli_real_escape_string 之外的那种 SQL 注入。
标签: php loops file foreach upload