javascript - 获取输入文件值并制作图像

标签 javascript jquery file-upload

我试图从 html 中的文件输入中获取值并将其立即放入我的 div 中,如下所示:

HTML:

    <div class='pushLeft noOverflow' id='areaUpload'>
        <input type='file' id='uploadFileHere' />
    </div>

jQuery:

    $(document).on("change", "#uploadFileHere", function(){
        $("#areaUpload").html("<img src='" + $("#uploadFileHere").val() + "' />");

    });

我遇到的问题是图像没有出现。我检查了文件路径,它返回:C:\fakepath\filenamehere.jpg

那么我该如何解决这个问题呢?

最佳答案

您可以使用FileReader为此,试试这个。

$(document).on("change", "#uploadFileHere", function(){
      var fileInput = this;
      if (fileInput.files && fileInput.files[0]) {
            var fileReader = new FileReader();

            fileReader.onload = function (e) {
               $("#areaUpload").html("<img src='" +e.target.result + "' />");
            }

            fileReader.readAsDataURL(fileInput.files[0]);
        }
});

检查这个 DEMO

感谢 @FabrícioMatté,为此 JsFiddle 演示

应注意,较旧的浏览器(IE < 10)不支持此 API

关于javascript - 获取输入文件值并制作图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324854/

相关文章:

javascript - 用户上传后如何显示新图像代替旧图像?

javascript - 为什么我无法在事件回调中捕获 discord.js promise 拒绝?

javascript - 获取最近选择框的值

如果为 null,Jquery 行分割不起作用

javascript - 如何从选择中按类名排除元素?

javascript - 将 Javascript getter 作为参数传递

javascript - 单击的 html 元素不等于 jQuery $.each() 循环中的同一元素

shell - 使用cURL上传POST数据和文件

apache-flex - 在 URL 中传递 cookie?

c# - 文件上传读取到内存并用作文本文件 - 有更好的方法吗?