繁体   English   中英

PHP上传具有不同输入字段名称的多个文件

[英]PHP upload multiple files with different input field names

尝试上传多个文件具有不同的输入名称。 由于我只需要1个插入查询,我需要将它们上传到数组中。 我需要将文件名插入同一行中的不同列

if(isset($_FILES['MainImage'])){
  $main_image_name = $_FILES['MainImage']['name'];
  $main_image_size = $_FILES['MainImage']['size'];
  $main_image_tmp = $_FILES['MainImage']['tmp_name'];
  $uploadMainTo = $uploadLocation.$main_image_name;
  $moveMain = move_uploaded_file($main_image_tmp,$uploadMainTo);

}

if(isset($_FILES['PDF'])){
  $pdf_name = $_FILES['PDF']['name'];
  $pdf_size = $_FILES['PDF']['size'];
  $pdf_tmp = $_FILES['PDF']['tmp_name'];
  $uploadPdfTo = $uploadLocation.$pdf_name;
  $movepdf = move_uploaded_file($pdf_tmp,$uploadPdfTo);
}

我的表格如下:

<input type="file" name="PDF">
<input type="file" name="MainImage">

查询:

$query = $db->execute("INSERT INTO users (pdf=?, main_image=?) VALUES (?,?) WHERE ID=$user_id", array($pdf, $main_image) );

正如你在评论中所说:

我需要同时插入2个图像(2个输入字段)和1个pdf文件

所以,我假设您将在HTML标记中包含所有文件输入,如下所示:

<input type="file" name="PDF">
<input type="file" name="MainImage">
<input type="file" name="SecondImage">

在这种情况下,要将上载文件的文件路径插入数据库,这样的东西应该工作:

$uploadMainTo = null;
if(isset($_FILES['MainImage'])){
  $main_image_name = $_FILES['MainImage']['name'];
  $main_image_size = $_FILES['MainImage']['size'];
  $main_image_tmp = $_FILES['MainImage']['tmp_name'];
  $uploadMainTo = $uploadLocation.$main_image_name;
  $moveMain = move_uploaded_file($main_image_tmp,$uploadMainTo);
}

$uploadSecondTo = null;
if(isset($_FILES['SecondImage'])){
  $second_image_name = $_FILES['SecondImage']['name'];
  $second_image_size = $_FILES['SecondImage']['size'];
  $second_image_tmp = $_FILES['SecondImage']['tmp_name'];
  $uploadSecondTo = $uploadLocation.$second_image_name;
  $moveSecond = move_uploaded_file($second_image_tmp,$uploadSecondTo);
}

$uploadPdfTo = null;
if(isset($_FILES['PDF'])){
  $pdf_name = $_FILES['PDF']['name'];
  $pdf_size = $_FILES['PDF']['size'];
  $pdf_tmp = $_FILES['PDF']['tmp_name'];
  $uploadPdfTo = $uploadLocation.$pdf_name;
  $movepdf = move_uploaded_file($pdf_tmp,$uploadPdfTo);
}

$query = $db->execute("INSERT INTO users (pdf, main_image, second_image) VALUES (?,?,?) WHERE ID = ?", array($uploadPdfTo, $uploadMainTo, $uploadSecondTo, $user_id) );

我只是不确定是否必须用null'NULL'初始化$uploadXTo变量。 如果您有问题,请以这种方式测试。

首先纠正你的HTML

<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />

那么你可以使用php数组

$_FILES['userfile']['name'][0]
$_FILES['userfile']['tmp_name'][0]
$_FILES['userfile']['size'][0]
$_FILES['userfile']['type'][0]

检查php文档: 上传多个文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM