[英]Multiple image upload and preview
我正在学习如何上传多张图片并显示它们的预览...
我遇到了以下代码
<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="???">
) 部分将包含什么来调用库?
以下是预览多个上传图像的解决方案的工作示例。 ( 来源,小提琴)
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>
首先在<head>
部分包含 Jquery 库
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
然后在那下面
<script>
$(function(){
//Here your function
});
</script>
在你的函数使用的变化on
,而不是live
$("patient_pic").on("change",function(){
readURL(this,"#preview_image")
});
jQuery 从 1.7 开始弃用live()
,而是使用on()
它很简单:-
<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
//Your Code Goes Here
});
</script>
</head>
<body>
<!--Your H
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.