javascript 如何在不向服务器发送数据的情况下显示选定的图像?

7nbnzgx9  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(88)

我正试图向客户展示他选择的图像:

<input type="file" onchange="showImage(this)"/>

但是我不能读取输入的值,因为我 checkout 了here。是否可以显示图像?
onchange中,我可以将表单发送到服务器,服务器可以将数据发送回来,但真的有必要吗?客户端不能在不与服务器进行乒乓的情况下显示数据吗?这是安全问题吗?

jm81lzqq

jm81lzqq1#

你可以使用FileReader web-api对象来实现,请看下面的代码片段:

HTML

<input id="src" type="file"/> <!-- input you want to read from (src) -->
<img id="target"/> <!-- image you want to display it (target) -->

JavaScript

function showImage(src,target) {
  var fr=new FileReader();
  // when image is loaded, set the src of the image where you want to display it
  fr.onload = function(e) { target.src = this.result; };
  src.addEventListener("change",function() {
    // fill fr with image data    
    fr.readAsDataURL(src.files[0]);
  });
}

var src = document.getElementById("src");
var target = document.getElementById("target");
showImage(src,target);
soat7uwm

soat7uwm2#

HTML

`<input type="file" name="img" id="img">
<img alt="" id="imgPreview" style="max-height: 200px; max-width: 200px;">`

jQuery

`

$(document).ready(function () {
  $("#img").change(function (e) {
                //console.log(URL.createObjectURL(e.target.files[0]));
                 $("#imgPreview").attr("src", URL.createObjectURL(e.target.files[0]));
   });
});

`

相关问题