【发布时间】:2013-08-31 12:39:18
【问题描述】:
我的第一个大型项目之一,所以请多多包涵。我有一个脚本可以帮助我调整图像大小并将其转换为 base64。这就是它的开始:
var createImage = function (src) {
var deferred = $.Deferred();
var img = new Image();
img.onload = function() {
deferred.resolve(img);
};
img.src = src;
return deferred.promise();
};
而我的问题是从上传表单获取图片源到脚本?
我尝试将一个函数与 Filereader API 拼接在一起(在其他来源的帮助下):
var createImageURL = function () {
var fileinput = document.getElementById('fileinput');
file = fileinput.files[0];
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function (event) {
var blob = new Blob([event.target.result]);
window.URL = window.URL || window.webkitURL;
var blobURL = window.URL.createObjectURL(blob);
}
return blobURL;
};
但是,这会在控制台中返回 GET 错误。
【问题讨论】:
-
readAsArrayBuffer是异步/非阻塞的,var blobURL与您的return在不同的范围内,return blobURL将在文件读取完成之前发生。
标签: javascript html filereader