1

我允许用户在保存到数据库之前查看上传的图像预览。HTML代码是:

<div class="upload-preview">
  <img />
</div>
<input class="file" name="logo" type="file">

我的jQuery代码是:

$(document).ready(function(){
var preview = $(".upload-preview img");

$(".file").change(function(event){
   var input = $(event.currentTarget);
   var file = input[0].files[0];
   var reader = new FileReader();
   reader.onload = function(e){
       image_base64 = e.target.result;
       preview.attr("src", image_base64);
   };
   reader.readAsDataURL(file);
  });
});

上面的代码适用于一张图片。如果我想上传 10 张图片,我必须重复代码 10 次。

我试图概括它,但由于 jquery 代码依赖于 html 类,因此图像被上传到所有匹配的类。

如果我使用一个 ID,那么我将不得不为每个 ID 重复 jquery 代码。

有什么方法可以概括这个问题,以便它可以用一个 jquery 函数预览多个图像。

4

1 回答 1

2

通过以下方式更改您的 HTML 代码:

<div class="upload-preview" id="upload-preview">

</div>
<input class="file" name="logo" type="file"/>

和这个的JS代码:

$(document).ready(function(){
var preview = $("#upload-preview");

$(".file").change(function(event){
   var input = $(event.currentTarget);
   var file = input[0].files[0];
   var reader = new FileReader();
   reader.onload = function(e){
       image_base64 = e.target.result;
       preview.append("<img src='"+image_base64+"'/><br/>");
   };
   reader.readAsDataURL(file);
  });
});
}
于 2013-10-24T11:23:46.163 回答