代码之家  ›  专栏  ›  技术社区  ›  Gokul

无需页面刷新即可上传文件

  •  0
  • Gokul  · 技术社区  · 8 年前

    我有一个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 回复  |  直到 8 年前
        1
  •  0
  •   Wale    8 年前
    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函数,它所做的是在不更改网页状态的情况下发出请求,现在我们已经从顶部传递了文件值,并按照url/api的预期发送它,现在由于XMLHttpRequest的强大功能,我们将在onreadystatechange的帮助下捕获响应,用于确定请求的状态是好(200)还是坏(404>)因此,我们可以同时在浏览器的同一页面上使用Jquery等进行通知。然而,我会建议你阅读一些关于这方面的丰富教程,无论是youtube还是其他一些网站,stackoverflow将帮助你在阅读教程后分享更多信息。