如何在不重新加载页面的情况下提交文件选择表单?

巴维什·帕特尔(Bhavesh Patel)

我正在开发一个无线文件传输应用程序(HTTP Web服务器),它包含一个网站,该网站具有将文件上传到服务器的形式,即android应用程序

当我选择一个文件大小非常小的文件头时,如下所示。

            POST /?Upload HTTP/1.1
            Host: 192.168.0.101:4567
            Connection: keep-alive
            Content-Length: 2968
            Pragma: no-cache
            Cache-Control: no-cache
            Origin: http://192.168.0.101:4567
            User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
            Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryT0t2jgS72DnsVZRX
            Accept: */*
            DNT: 1
            Referer: http://192.168.0.101:4567/
            Accept-Encoding: gzip, deflate
            Accept-Language: en-US,en;q=0.8

当我选择一个较大的文件时,会出现如下错误

控制台错误:(索引):637拒绝设置不安全的标头“ Content-length”

标头已产生

            Provisional headers are shown
            Content-Type:multipart/form-data; boundary=----WebKitFormBoundary0tFAb8kt90pwbuFO
            Origin:http://192.168.0.101:4567
            Referer:http://192.168.0.101:4567/
            User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

            Provisional headers are shown
            Content-Type:multipart/form-data; boundary=----WebKitFormBoundary0tFAb8kt90pwbuFO
            Origin:http://192.168.0.101:4567
            Referer:http://192.168.0.101:4567/
            User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

            Provisional headers are shown
            Content-Type:multipart/form-data; boundary=----WebKitFormBoundary0tFAb8kt90pwbuFO
            Origin:http://192.168.0.101:4567
            Referer:http://192.168.0.101:4567/
            User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

代码 :

            <form id="uploadForm" method="post" enctype="multipart/form-data">
                <input id="uploadPath" type="hidden" name="path">
                <button class="file-upload">
                    <input id="fileUpload" onchange="uploadFile()" type="file" class="file-input">Upload
                </button>
            </form>

            <script>

            function uploadFile() {        
                var form = document.getElementById('uploadForm');
                var path = form.elements.namedItem("path").value
                var file = document.getElementById('fileUpload').files[0];
                var formData = new FormData(form);

                formData.append('file', file);
                var http = new XMLHttpRequest();
                http.open("POST", '/?Upload', true);
                http.setRequestHeader("Content-length", file.size);
                http.onreadystatechange = function () { //Call a function when the state changes.
                    if (http.readyState == 4 && http.status == 200) {
                        alert(http.responseText);
                    }
                }

                http.send(formData);
                form.reset();
                form.elements.namedItem("path").value = path;

            }
            </script>
模样

这将侦听文件输入,并且值更改(表示他们已选择文件)时,它将使用您的表单将ajax调用发送到您指定的url。这应该提交表单而无需重新加载页面。

更新以包括对jQuery的引用

<script src="https://code.jquery.com/jquery-2.2.2.min.js"></script>
<script>
$(function () {
  $("#fileUpload").on("change", function () {
    $.ajax({
      url: "upload.php",
      method: "POST",
      data: $("form").serialize(),
      success: function (data) {
        // success callback
      }
    });
  });
});
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不重新加载页面的情况下检查表单中的确认密码字段

来自分类Dev

如何在不重新加载页面的情况下向我的网址添加参数?

来自分类Dev

如何在不重新加载页面的情况下更改标签的类属性和应用样式

来自分类Dev

在Ajax中成功后如何在不重新加载页面的情况下更改URL

来自分类Dev

如何在不重新加载页面的情况下刷新div和mysql代码

来自分类Dev

如何在不重新加载页面的情况下使用javascript过滤html表?

来自分类Dev

Django / Js:如何在不重新加载整个页面的情况下发布表单

来自分类Dev

如何在不重新加载页面的情况下更改标签的类属性和应用样式

来自分类Dev

如何在不重新加载页面的情况下使用AJAX将表单值发送到php?

来自分类Dev

如何在不重新加载页面的情况下使用php页面上的按钮执行功能?

来自分类Dev

如何在不重新加载页面的情况下从文本字段值执行查找并填充表单元素?

来自分类Dev

如何在不重新加载页面的情况下更改php include?

来自分类Dev

如何在不重新加载页面的情况下使用javascript将表单值发送到php

来自分类Dev

如何在不重新加载页面的情况下更改URL?-扭曲

来自分类Dev

如何在不重新加载页面的情况下在表单中创建html元素?

来自分类Dev

如何在不重新加载页面的情况下重置Rhinoslider Jquery插件?

来自分类Dev

如何在不重新加载页面的情况下使用laravel ajax发布和获取评论?

来自分类Dev

使用AngularJS如何在不重新加载页面的情况下显示手风琴中的新鲜数据

来自分类Dev

Rails如何在不重新加载页面的情况下将评论添加到微博集合中

来自分类Dev

如何在不重新加载页面的情况下刷新div和mysql代码

来自分类Dev

如何在不重新加载页面的情况下在Laravel中提交PUT方法表单?

来自分类Dev

如何在不重新加载页面的情况下将textarea值转换为有意义的内容?

来自分类Dev

无法在不重新加载整个页面的情况下用Enter键提交编号

来自分类Dev

如何在不重新加载页面的情况下使用ajax发送数据?(节点)

来自分类Dev

将表单数据提交给 servlet 并在不重新加载页面的情况下检索答案?

来自分类Dev

如何在不重新加载页面的情况下以角度 2 设置或删除当前路线中的 queryParams

来自分类Dev

如何在不重新加载页面的情况下“刷新”Angular 中的组件?

来自分类Dev

如何在不重新加载 JSON 更新页面的情况下更新 div 的类和内容

来自分类Dev

如何在不重新加载页面的情况下获得执行 PHP 函数的按钮?

Related 相关文章

  1. 1

    如何在不重新加载页面的情况下检查表单中的确认密码字段

  2. 2

    如何在不重新加载页面的情况下向我的网址添加参数?

  3. 3

    如何在不重新加载页面的情况下更改标签的类属性和应用样式

  4. 4

    在Ajax中成功后如何在不重新加载页面的情况下更改URL

  5. 5

    如何在不重新加载页面的情况下刷新div和mysql代码

  6. 6

    如何在不重新加载页面的情况下使用javascript过滤html表?

  7. 7

    Django / Js:如何在不重新加载整个页面的情况下发布表单

  8. 8

    如何在不重新加载页面的情况下更改标签的类属性和应用样式

  9. 9

    如何在不重新加载页面的情况下使用AJAX将表单值发送到php?

  10. 10

    如何在不重新加载页面的情况下使用php页面上的按钮执行功能?

  11. 11

    如何在不重新加载页面的情况下从文本字段值执行查找并填充表单元素?

  12. 12

    如何在不重新加载页面的情况下更改php include?

  13. 13

    如何在不重新加载页面的情况下使用javascript将表单值发送到php

  14. 14

    如何在不重新加载页面的情况下更改URL?-扭曲

  15. 15

    如何在不重新加载页面的情况下在表单中创建html元素?

  16. 16

    如何在不重新加载页面的情况下重置Rhinoslider Jquery插件?

  17. 17

    如何在不重新加载页面的情况下使用laravel ajax发布和获取评论?

  18. 18

    使用AngularJS如何在不重新加载页面的情况下显示手风琴中的新鲜数据

  19. 19

    Rails如何在不重新加载页面的情况下将评论添加到微博集合中

  20. 20

    如何在不重新加载页面的情况下刷新div和mysql代码

  21. 21

    如何在不重新加载页面的情况下在Laravel中提交PUT方法表单?

  22. 22

    如何在不重新加载页面的情况下将textarea值转换为有意义的内容?

  23. 23

    无法在不重新加载整个页面的情况下用Enter键提交编号

  24. 24

    如何在不重新加载页面的情况下使用ajax发送数据?(节点)

  25. 25

    将表单数据提交给 servlet 并在不重新加载页面的情况下检索答案?

  26. 26

    如何在不重新加载页面的情况下以角度 2 设置或删除当前路线中的 queryParams

  27. 27

    如何在不重新加载页面的情况下“刷新”Angular 中的组件?

  28. 28

    如何在不重新加载 JSON 更新页面的情况下更新 div 的类和内容

  29. 29

    如何在不重新加载页面的情况下获得执行 PHP 函数的按钮?

热门标签

归档