【发布时间】:2014-08-15 15:52:33
【问题描述】:
如何将文件的名称和大小传递给 JavaScript 的 FileHandler 的 .onload 事件。如您所见,我在下面的 Ajax 调用中使用了(仍未声明的)变量 size 和 name。但是,我必须以某种方式从getData() 函数中传递它们。
我找到了Pass a parameter to FileReader onload event,但它似乎对我不起作用。
getData('file2093',
function(e) {
new Ajax.Request('/documents/2093', {
asynchronous:true, evalScripts:true, method:'patch', parameters:'document_payload=' + btoa(e.target.result) + '&document_filename=' + btoa(name) + '&document_size=' + btoa(size)
});
})
function getData(inputField, onLoadCallback){
var input = document.getElementById(inputField);
var file = input.files[0];
var size = file.size;
var name = file.name;
var fr = new FileReader();
fr.onload = onLoadCallback
fr.readAsDataURL(file);
}
【问题讨论】: