使用URL.createObjectURL(file | blob)得到一個當前文件的一個內存URL;需要使用URL.revokeObjectURL(url)釋放內存。
使用new FileReader()創建文件讀取對象,可以調用reader.readAsArrayBuffer、reader.readAsDataURL、reader.readAsText等方法。使用reader.readAsDataURL(file);注意:該方法創建是異步的,需要使用reader.onload方法使用可以得到轉換后的blob://路徑
使用URL.createObjectURL(blob)得到圖片地址
function fileChangeCreateObjectURL() {
const oFile = document.getElementById('file')
oFile.addEventListener('change', () => {
var objUrl = oFile.files[0];
console.log(objUrl, 'objUrl')
const blob = new Blob([objUrl]); // 文件轉化成二進制文件
console.log(blob, 'blob')
var windowURL = window.URL || window.webkitURL;
//createObjectURL創建一個指向該參數對象(圖片)的URL
var dataURL = windowURL.createObjectURL(blob);
console.log(dataURL, 'dataURLdataURL')
document.getElementsByClassName('test')[0].src = dataURL
})
}
使用fileReader得到圖片地址
function fileChangeFileReader() {
const oFile = document.getElementById('file')
oFile.addEventListener('change', () => {
var objUrl = oFile.files[0];
var reader = new FileReader(); //新建一個FileReader
reader.readAsDataURL(objUrl); //讀取文件,保存為base64 格式
reader.onload = function (evt) { //讀取完文件之后會回來這里
var imageString = evt.target.result;
console.log(imageString,'imageString')
//獲得一個http格式的url路徑:mozilla(firefox)||webkit or chrome
// var windowURL = window.URL || window.webkitURL;
//createObjectURL創建一個指向該參數對象(圖片)的URL
// var dataURL = windowURL.createObjectURL(objUrl);
// $("#showImage").attr("src", dataURL);
// console.log(dataURL, 'dataURL')
document.getElementsByClassName('test')[0].src = imageString
}
})
}