用户上传压缩文件后,我想在通过网络发送之前从中删除图像文件夹。我正在使用剑道进行上传,现有功能运行良好。我只想添加删除图像部分。这是我到目前为止所拥有的:
function onSelect(e) {
var file = e.files[0];
if (endsWith(file.name, '.eds')) {
var contents = e.target.result;
var jszip = new JSZip(contents);
jszip.remove("apldbio/sds/images_barcode");
fileToSend = jszip.generate({type: "base64", compression: "DEFLATE"});
}
e.files[0] = fileToSend;
openProgressDialog(e.files.length); //this is existing code, works fine
}
target.result
事件中似乎不存在e
。从那时起,没有任何东西可以正常工作。e
可能应该在 FileReader 对象的 onload() 中使用(如这里和这里所示),但我不知道如何将 FileReader 用于我的目的,以及 kendo Upload。
编辑:
我做了更多的阅读,现在我正在使用这样的 FileReader:
var reader = new FileReader();
reader.onload = function (e) {
// do the jszip stuff here with e.target.result
};
reader.onerror = function (e) {
console.error(e);
};
reader.readAsArrayBuffer(file);
注意:file = e.files[0]
与第一个代码块一样。尽管如此,我得到了错误:
Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'.