如何在php中逐个处理多个图像上传

时间:2016-11-01 06:31:35

标签: javascript php jquery jquery-ui

我们有一个带<input type="file" name="u_file" class="u_class" id="u_id">的html表单。当用户上传图像时,它将在提交表单之前显示在下面的div中。

<div class="preview-div">


</div>.

那是当用户上传图像时,那时我们通过jquery将图像附加到div。

$("#u_id").change(function(event){

  $(".preview-div").append(' <img style="" class="img-class"  src="'+URL.createObjectURL(event.target.files[0])+'">');
  etc.....

});

提交表单时,它会检查

if($_FILES['u_file']['name'] !=""){

$uploadedfile = $_FILES['user_file'];
$image_name=$_FILES['u_file']['name'];

move_imageto_dir();
etc....

}

这里move_imageto_dir();是我们编写的自定义函数。

但问题是它只会检查并移动最后一张图像。怎么解决这个问题?

那是($ _FILES ['u_file']只包含最新的上传图片。我们需要做什么?我们不能使用<input type='file' multiple>

谢谢。

2 个答案:

答案 0 :(得分:2)

将文件输入命名为数组

<input type="file" name="u_file[]" class="u_class" id="u_id">

$_FILES['u_file']现在是一个数组

foreach ($_FILES['u_file'] as $file) {
$image_name=$file['name'];

move_imageto_dir();
etc....

}

答案 1 :(得分:1)

您可以使用名称为

的数组符号
<input type="file" name="u_file[]" class="u_class" id="u_id">

现在在php中你可以收到这样的文件

$_FILES['file']['u_file'][0]
$_FILES['file']['u_file'][1]

或者您也可以使用loop

foreach ($_FILES['file']['u_file'] as $filename) {}