【发布时间】:2020-05-30 22:04:20
【问题描述】:
我正在尝试在将所选图像上传到服务器之前显示它的预览..
html
<div id="drop_zone" (drop)="dropHandler($event)" (dragover)="onDragover($event)">
<p>drag one or more files to this dropzone</p>
<img src="" id="imgPreview">
</div>
ts
dropHandler(ev){
console.log(ev);
console.log("file dropped");
event.preventDefault();
if (ev.files && ev.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
var abc=<HTMLImageElement>document.getElementById('imgPreview');
abc.src=e.target.result;
};
reader.readAsDataURL(ev.files[0]);
}
但abc.src=e.target.result 似乎返回了一个 ArrayBuffer。如何使用 FileReader 将所选图像的 url 作为字符串获取?
【问题讨论】:
-
我认为是由于浏览器限制。您无法获取网址。你只能获取数据。否则,如果你使用图片而不是你得到假 URL。
-
@xdeepakv 假网址很好。我只想显示预览
-
使用字符串连接:检查这里stackoverflow.com/questions/11089732/…
-
使用您的代码,您肯定应该有一个字符串。你一定有什么东西抄错了。不过请注意,在这种情况下甚至不要使用 FileReader。创建 blobURI
dropHandler(ev) { if(ev.files && ev.files[0]) { document.getElementById('imgPreview').src = URL.createObjectURL(ev.files[0]);} }
标签: javascript angular typescript