我目前正在使用HTML5文件输入法读取文件。
当文件加载后,我抓住它src
(在我将其定义为Image
之后)并将该src直接放入background-image
的{{1}}属性中
我记录了src,它似乎是 Base64字符串。
不幸的是,在Android手机上将文件编码为base64和内存不足(导致浏览器挂起)。
读取文件时是否可以不将其编码为Base64 使用另一种更有效的内存方式显示它?
这是我目前使用的:
div.
答案 0 :(得分:2)
使用window.URL创建对象URL而不是dataURL:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
$("#alertBox").show();
$("#alertBox").html("Oops! The link is NOT a valid image");
window.setTimeout(function () {
$("#alertBox").hide()
}, 3000);
continue;
}
var uploadedImg = new Image();
uploadedImg.onload = function () {
changeSelectedImg(uploadedImg.src);
proceedToView("2") ;
};//end onload
uploadedImg.src = URL.creatObjectURL(f);
}//next
}
只要浏览器支持window.URL:http://caniuse.com/#search=url
,这比基于FileReader的例程运行得更快,看起来更干净