我有一个文件输入被一些文字掩盖,使它看起来更好。我试图找到一种方法,一旦用户开始上传文件,等到我们实际拥有该文件后再继续。
<form id="pm_uploadForm" method="POST">
<input type="file" id="fileinput" onchange="loadFile(event)"
style="display:none"/>
<p id="upload_file">Click here to upload your file.</p>
<button type="submit">Upload</button>
</form>
在我的脚本部分,我有以下代码:第一个触发实际的file
输入元素:
$(document).on('click', '#upload_file', function() {
$("#fileinput").trigger('click');
});
此链接指向该输入的onchange
事件:
loadFile = function(event) {
console.log("loading file...");
setTimeout(function(){
new_file_name = event.target.value.split("\\")[2];
// do stuff with the file...
}, 5000);
}
现在 - 我可以确保事件在do stuff with the file...
行之前完成的唯一方法是使用setTimeout
函数,这是不好的。如果用户上传的文件是500kb,那很好 - 但如果它是15mb,我会在文件上传完成之前执行代码。
如何在上传文件上运行代码之前等待上传完成?