文件上传没有页面刷新

时间:2018-03-12 10:37:29

标签: javascript ajax jsp file-upload

我有一个html页面,我使用表单输入上传文件。 我的代码是

  <form action = "UploadFile.jsp" method = "post" target="my-iframe"
     enctype = "multipart/form-data">
     <input type = "file" name = "file" size = "50" />
     <br />
     <input type = "submit" value = "Upload File" />
  </form>
  <iframe name="my-iframe" src="UploadFile.jsp" style="display:none;"></iframe>

现在这个表单很好,没有任何页面刷新。但是,我需要知道是否有任何其他可能的文件上传方法,而不使用没有页面刷新的iframe。 有没有任何方法可以使用ajax请求和javascript执行此操作?

1 个答案:

答案 0 :(得分:0)

function imgUpload(file){
var uploadRequest = new XMLHttpRequest();
    uploadRequest.open('post', 'demo-url');
    uploadRequest.file = file;
    uploadRequest.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
      //or
      document.getElementById("demo").innerHTML =
      "Response code is 200 i.e successful image upload";
    }
  };
    uploadRequest.send();
}

我将尽可能简单地解释这一点,首先要做的是调用XMLHttpRequest函数,它的作用是在不改变网页状态的情况下发出请求,现在从顶部我们已经传递了文件由于XMLHttpRequest的强大功能,我们将在onreadystatechange的帮助下捕获响应,如果好(200)或坏(404) ;)所以我们可以同时使用Jquery在浏览器的同一页面上通知。然而,我会建议你阅读一些关于这个的丰富教程,无论是youtube还是其他一些网站,stackoverflow将简单地帮助你在完成教程后分享更多的光。