【问题标题】:How to handle multiple image upload one by one in php如何在php中一张一张处理多张图片上传
【发布时间】:2017-03-14 07:14:23
【问题描述】:

我们有一个带有<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'] 只包含最新上传的图片。我们需要做什么?我们不能使用&lt;input type='file' multiple&gt;

谢谢。

【问题讨论】:

  • 所以你要上传多张图片或单张图片,请上传move_imageto_dir()函数的代码

标签: javascript php jquery jquery-ui


【解决方案1】:

将您的文件输入命名为数组

<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....

}

【讨论】:

  • 好主意。我只是忘记了。您能否使用 foreach 循环更新您的答案。
  • Noe u_file 是数组。当我出于某种原因打印阵列时,它只拍摄最新的图像。
  • 最新是什么意思,注意你需要所有文件输入的符号
  • 如果我先选择 1.jpg,然后选择 2.peg,3.jpeg 。然后表单提交ant print $_FILES['u_file'] 然后它输出只显示这个数组([name] => Array([0] => 3.jpeg)[type] => Array([0] => image /jpeg ) [tmp_name] => 数组 ( [0] => /Applications/MAMP/tmp/php/php1nrbbV ) [错误] => 数组 ( [0] => 0 ) [大小] => 数组 ( [0] => 6733 ) )
  • 你能提供你文件上传表单的解析html吗?
【解决方案2】:

你可以在文件名中使用数组符号

<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) {}

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多