[英]Jquery: How to dynamically SHOW image using the “value” of <input type=“file”> Field
我想知道是否有一种方法可以动态显示用户刚刚上传到input type =“file”字段的图像。
例如,到目前为止,我有以下代码:
image_upload.html
<form id ="image_upload_form" action="" method="post" enctype="multipart/form-data">
<input id ="id_iamge" type="file" name="image" />
<input type="submit" value="Upload" />
</form>
<div id="image_view">
<img id="uploaded_image">
</div>
upload.js
$(document).ready(function() {
$("#id_image").change(file_select);
});
function file_select(event) {
$("#uploaded_image").attr("src", $("#id_image").val());
}
所以我基本上想要显示用户刚刚在Field上传的图像。
当然,我知道如果用户已经提交了表单,并且图像已经在我的数据库服务器中,我可以轻松地查看图像。
但是,我想在将图像提交到数据库服务器之前预览图像。
为了做到这一点,我想我必须在Uploader自己的计算机中找出Image的PATH,然后将“Local path”设置为图像的“src”。
有没有办法获取用户刚刚提交的图像的本地路径?
(我的上面的Javascript代码显然不起作用,因为它只是设置图像文件的名称,而不是绝对路径,作为“src”。例如,当我运行该代码并上传图像时,我得到:
结果:
<img id="uploaded_image" src="random_image.jpg" />
哪个没有显示任何内容。
看一下这个样本,这应该有用 : http : //jsfiddle.net/LvsYc/
HTML:
<form id="form1" runat="server">
<input type='file' id="imgInp" />
<img id="blah" src="#" alt="your image" />
</form>
JS:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#blah').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$("#imgInp").change(function(){
readURL(this);
});
使用此代码。 它会工作:
<!-- Java script code, use jquery library. -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript">
function showimagepreview(input)
{
if (input.files && input.files[0])
{
var filerdr = new FileReader();
filerdr.onload = function(e) {
$('#imgDisplayarea').attr('src', e.target.result);
};
filerdr.readAsDataURL(input.files[0]);
}
}
</script>
<!-- HTML -->
<form>
<div>
<input type="file" name="imgShow" id="imgShow" onchange="imagePreview(this)" />
</div>
<img id="imgDisplayarea"/>
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.