使用html表单工作发布文件,但是使用XMLHttpRequest它会被截断

时间:2017-06-06 16:17:29

标签: javascript php html ajax xmlhttprequest

我有以下简单的网页,可用于上传任何文件:

<html>
<head>
</head>
<body>
  <form action="upload_file.php" method="post" enctype="multipart/form-data">
    <input type="file" name="filefield" id="filefield"><br>
    <button type="submit">submit</button>
  </form>
</body>
</html>

以下Ajax版本仅适用于非常小的文件:

<html>
<head>
</head>
<body>
  <script>
    function postForm() {
      var xhttp = new XMLHttpRequest();
      var formData = new FormData();
      formData.append("filefield", document.getElementById("filefield").files[0]);
      xhttp.open("POST", "upload_file.php", true);
      xhttp.send(formData);
    }
  </script>
  <form>
    <input type="file" name="filefield" id="filefield"><br>
    <button onclick="postForm()">submit</button>
  </form>
</body>
</html>

我确切地检查了文件有多大,但是100 KB文件上传成功,而2 MB文件失败。 Wireshark显示浏览器只是中途停止发送文件包,并发送FIN标志。服务器回复HTTP状态代码200和PHP错误3,表明该文件仅部分上载。最新版本的IE和Chrome的结果相同。

有人可以解释为什么会这样,解决方案是什么?感谢。

0 个答案:

没有答案