添加用来显示图片的<img>
元素
<img id="image-preview" src="">
添加一个file类型的<input>
,用来打开图片
<input type="file" id="file-upload" accept="image/*">
<input>
元素注册事件主要的逻辑都在previewImage函数中,稍晚完善。
var inputEle = document.getElementById('file-input');
window.addEventListener(inputEle, 'change', previewImage);
function previewImage(event) {
console.log(event);
}
取得选中的file对象
const imageFiles = event.target.files;
使用URL.createObjectURL创建file对象的object url createObjectURL创建的形式是 blob:http://localhost...
const imageUrl = URL.createObjectURL(imageFiles[0]);
使用页面上的<img>
元素显示图片
const imagePreviewEle = document.getElementById('image-preview');
imagePreviewEle.src = imageUrl;
完整代码如下:
添加用来显示图片的<img>
元素
<img id="image-preview" src="">
添加一个file类型的<input>
,用来打开图片
<input type="file" id="file-upload" accept="image/*">
<input>
元素注册事件主要的逻辑都在previewImage函数中,稍晚完善。
var inputEle = document.getElementById('file-input');
window.addEventListener(inputEle, 'change', previewImage);
function previewImage(event) {
console.log(event);
}
取得选中的file对象
const imageFiles = event.target.files;
创建FileReader对象
var fr = new FileReader();
在FileReader的onload事件处理函数中显示图片
document.getElementById(imgId).src = e.target.result;
fr.onloadend = function(e) {
imagePreviewEle.src = e.target.result;
}
使用FileReader的readAsDataURL读取图片
readAsDataURL生成的url的格式是图像文件的base64编码url
效果如:data:image/gif;base64,R0lGODlhAAXQAvcfAAAAACQAAE.....
读取完成之后会触发onload事件,在onload事件中通过e.target.result获取
fr.readAsDataURL(imageFiles[0]);
完整代码如下: