javascript在采取行动之前等待文件上传进行处理

时间:2018-02-07 18:08:47

标签: javascript jquery

我有一个文件输入被一些文字掩盖,使它看起来更好。我试图找到一种方法,一旦用户开始上传文件,等到我们实际拥有该文件后再继续。

<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,我会在文件上传完成之前执行代码。

如何在上传文件上运行代码之前等待上传完成?

0 个答案:

没有答案