javascript - 多张图片上传和预览

标签 javascript jquery css html image-upload

我正在学习如何上传多张图片并显示它们的预览...

我遇到了以下代码

<html>
<head>
<style>
.input-file-row-1:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}

.input-file-row-1{
display: inline-block;
margin-top: 25px;
position: relative;
}

#preview_image {
display: none;
width: 90px;
height: 90px;
margin: 2px 0px 0px 5px;
border-radius: 10px;
}

.upload-file-container { 
position: relative; 
width: 100px; 
height: 137px; 
overflow: hidden;   
background: url('images/picplus.png') top center no-repeat;
float: left;
margin-left: 23px;
} 

.upload-file-container-text{
font-family: Arial, sans-serif;
font-size: 12px;
color: #719d2b;
line-height: 17px;
text-align: center;
display: block;
position: absolute; 
left: 0; 
bottom: 0; 
width: 100px; 
height: 35px;
}

.upload-file-container-text > span{
border-bottom: 1px solid #719d2b;
cursor: pointer;
}

.one_opacity_0 {
opacity: 0;
height: 0;
width: 1px;
float: left;
}
</style>
<script>
function readURL(input,target)
{
if(input.files && input.files[0])
{
var reader=new FileReader();
var image_target=$(target);
reader.onload=function(e)
{
    image_target.attr('src',e.target.result).show();
};
reader.readAsDataUrl(input.files[0]);
}
}

$("patient_pic").live("change",function(){
readURL(this,"#preview_image")
});
</script>

</head>

<body>
<form name="" method="post" action="#" class="feedback-form-1">
<fieldset>
    <div class="input-file-row-1">
        <div class="upload-file-container">
            <img id="preview_image" src="#" alt="" />
            <div class="upload-file-container-text">
                <div class = 'one_opacity_0'>
                    <input type="file" id="patient_pic" label = "add" />
                </div>
                <span> Add Photo </span>
            </div>

<div class="upload-file-container-text">
                <div class = 'one_opacity_0'>
                    <input type="file" id="patient_pic" label = "add" />
                </div>
                <span> Add Photo </span>
            </div>
    
</div>
    </div>
</fieldset>
</form>
</body>

</html>

我遇到了这个 JS Fiddle这对我来说是完美的解释。但作为初学者,我知道它包含一个 jQuery 库,它清楚地显示在 Fiddle 的框架扩展中。现在我的问题是,当我在我的机器上开始编码时,我应该如何包含它?

head ( <script src="???">) 部分将包含什么以调用库?

最佳答案

下面是预览多个上传图像的解决方案的工作示例。 ( Source , Fiddle )

window.onload = function() {
  //Check File API support
  if (window.File && window.FileList && window.FileReader) {
    var filesInput = document.getElementById("files");
    filesInput.addEventListener("change", function(event) {
      var files = event.target.files; //FileList object
      var output = document.getElementById("result");
      for (var i = 0; i < files.length; i++) {
        var file = files[i];
        //Only pics
        if (!file.type.match('image'))
          continue;
        var picReader = new FileReader();
        picReader.addEventListener("load", function(event) {
          var picFile = event.target;
          var div = document.createElement("div");
          div.innerHTML = "<img class='thumbnail' src='" + picFile.result + "'" +
            "title='" + picFile.name + "'/>";
          output.insertBefore(div, null);
        });
        //Read the image
        picReader.readAsDataURL(file);
      }
    });
  } else {
    console.log("Your browser does not support File API");
  }
}
body {
  font-family: ‘Segoe UI’;
  font-size: 12pt;
}

header h1 {
  font-size: 12pt;
  color: #fff;
  background-color: #1BA1E2;
  padding: 20px;
}

article {
  width: 80%;
  margin: auto;
  margin-top: 10px;
}

.thumbnail {
  height: 100px;
  margin: 10px;
}
<form id='post-form' class='post-form' method='post'>
  <label for='files'>Select multiple files: </label>
  <input id='files' type='file' multiple/>
  <output id='result' />
</form>

关于javascript - 多张图片上传和预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779983/

相关文章:

html - 如何仅使用 CSS 根据其兄弟大小动态调整 HTML 元素的大小?

javascript - 在表格内显示/隐藏 tbody 标签

javascript - 您如何查看 PDF 中嵌入的 JavaScript?

javascript - Parse.com Cloud 代码 - 在保存之前创建另一个对象的新实例

javascript - 将简单数组转换为二维数组(矩阵)

Jquery dblclick 不响应相同的光标位置

javascript - 在 Javascript 中使用 XMLHttpRequest 暂停下载

javascript - 中断JQuery setTimeout函数

javascript - 如果 id 不在使用 jQuery 的 JSON 中,如何隐藏 li 标签?

javascript - YouTube 嵌入式视频无法在 IE8 的模态窗口中播放