Jquery:如何使用<input type ="file"> Field的"value"动态显示图像

use*_*270 11 javascript jquery

我想知道是否有一种方法可以动态显示用户刚刚上传到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>
Run Code Online (Sandbox Code Playgroud)


upload.js

$(document).ready(function() {
    $("#id_image").change(file_select);
});

function file_select(event) {
    $("#uploaded_image").attr("src", $("#id_image").val());
}
Run Code Online (Sandbox Code Playgroud)


所以我基本上想要显示用户刚刚在Field上传的图像.

当然,我知道如果用户已经提交了表单,并且图像已经在我的数据库服务器中,我可以轻松地查看图像.

但是,我想在将图像提交到数据库服务器之前预览图像.

为了做到这一点,我想我必须在Uploader自己的计算机中找出Image的PATH,然后将"Local path"设置为图像的"src".

有没有办法获取用户刚刚提交的图像的本地路径?

(我的上面的Javascript代码显然不起作用,因为它只是设置图像文件的名称,而不是绝对路径,作为"src".例如,当我运行该代码并上传图像时,我得到:

结果:

<img id="uploaded_image" src="random_image.jpg" />
Run Code Online (Sandbox Code Playgroud)

哪个没有显示任何内容.

Rob*_*ert 23

看一下这个样本,这应该有用:http://jsfiddle.net/LvsYc/

HTML:

<form id="form1" runat="server">
    <input type='file' id="imgInp" />
    <img id="blah" src="#" alt="your image" />
</form>
Run Code Online (Sandbox Code Playgroud)

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);
});
Run Code Online (Sandbox Code Playgroud)


小智 5

使用此代码.它会工作:

<!-- 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>
Run Code Online (Sandbox Code Playgroud)