• <bdo id='tyG6C'></bdo><ul id='tyG6C'></ul>

    <small id='tyG6C'></small><noframes id='tyG6C'>

  1. <tfoot id='tyG6C'></tfoot>

  2. <i id='tyG6C'><tr id='tyG6C'><dt id='tyG6C'><q id='tyG6C'><span id='tyG6C'><b id='tyG6C'><form id='tyG6C'><ins id='tyG6C'></ins><ul id='tyG6C'></ul><sub id='tyG6C'></sub></form><legend id='tyG6C'></legend><bdo id='tyG6C'><pre id='tyG6C'><center id='tyG6C'></center></pre></bdo></b><th id='tyG6C'></th></span></q></dt></tr></i><div id='tyG6C'><tfoot id='tyG6C'></tfoot><dl id='tyG6C'><fieldset id='tyG6C'></fieldset></dl></div>
    <legend id='tyG6C'><style id='tyG6C'><dir id='tyG6C'><q id='tyG6C'></q></dir></style></legend>

      使用 XMLHttprequest 上传文件 - multipart/form-data 中缺少边界

      时间:2024-08-09

      <tfoot id='EAVqm'></tfoot>
        <i id='EAVqm'><tr id='EAVqm'><dt id='EAVqm'><q id='EAVqm'><span id='EAVqm'><b id='EAVqm'><form id='EAVqm'><ins id='EAVqm'></ins><ul id='EAVqm'></ul><sub id='EAVqm'></sub></form><legend id='EAVqm'></legend><bdo id='EAVqm'><pre id='EAVqm'><center id='EAVqm'></center></pre></bdo></b><th id='EAVqm'></th></span></q></dt></tr></i><div id='EAVqm'><tfoot id='EAVqm'></tfoot><dl id='EAVqm'><fieldset id='EAVqm'></fieldset></dl></div>
            <bdo id='EAVqm'></bdo><ul id='EAVqm'></ul>

            <small id='EAVqm'></small><noframes id='EAVqm'>

              1. <legend id='EAVqm'><style id='EAVqm'><dir id='EAVqm'><q id='EAVqm'></q></dir></style></legend>
                  <tbody id='EAVqm'></tbody>

              2. 本文介绍了使用 XMLHttprequest 上传文件 - multipart/form-data 中缺少边界的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在使用 XMLHttprequest 上传文件.这是上传文件的JS函数:

                I'm uploading a file with XMLHttprequest. Here is the JS function, that uploads a file:

                var upload = function(file) {
                    // Create form data
                    var formData = new FormData();
                    formData.append('file', file);
                
                    var xhr = new XMLHttpRequest();
                
                    // Open
                    xhr.open('POST', this.options.action);
                
                    // Set headers
                    xhr.setRequestHeader("Cache-Control", "no-cache");
                    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                    xhr.setRequestHeader("Content-Type", "multipart/form-data");
                    xhr.setRequestHeader("X-File-Name", file.fileName);
                    xhr.setRequestHeader("X-File-Size", file.fileSize);
                    xhr.setRequestHeader("X-File-Type", file.type);
                
                    // Send
                    xhr.send(formData);
                }
                

                在服务器端,在 upload.php 我这样读取文件:

                On the server side, in upload.php I read the file this way:

                file_put_contents($filename, (file_get_contents('php://input')));
                

                一切正常,除了我收到一个 PHP 警告:

                Everything works fine, except that I get a PHP Warning:

                第 0 行 Unknown 中的 multipart/form-data POST 数据中缺少边界.

                如果我删除此行:xhr.setRequestHeader("Content-Type", "multipart/form-data");警告消失了.

                If I remove this line: xhr.setRequestHeader("Content-Type", "multipart/form-data"); the warning goes away.

                这里应该是什么问题?

                推荐答案

                这对我来说有点奇怪,但这确实有效:

                Well this is strange a little bit for me, but this is what worked:

                // Open
                xhr.open('POST', this.options.action, true);
                
                // !!! REMOVED ALL HEADERS
                
                // Send
                xhr.send(formData);
                

                在这种情况下,在服务器端我不会读取通过 php://input 发送的文件,但该文件将位于 $_FILES 数组中.

                In this case, on server side I don't read the file sent via php://input but the file will be in the $_FILES array.

                这解决了我的问题,但我仍然很好奇为什么现在出现在 $_FILES 中的文件?

                This solved my problem, but I'm still curious why appears now the file in $_FILES?

                在 Chrome、Mozilla、Safari 和 IE10 中测试.

                Tested in Chrome, Mozilla, Safari, and IE10.

                这篇关于使用 XMLHttprequest 上传文件 - multipart/form-data 中缺少边界的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:XMLHttpRequest 在浏览器中打开 PDF 下一篇:如何在通过ajax加载的html中运行javascript

                相关文章

                1. <legend id='6zIwz'><style id='6zIwz'><dir id='6zIwz'><q id='6zIwz'></q></dir></style></legend>
                      <bdo id='6zIwz'></bdo><ul id='6zIwz'></ul>
                    <i id='6zIwz'><tr id='6zIwz'><dt id='6zIwz'><q id='6zIwz'><span id='6zIwz'><b id='6zIwz'><form id='6zIwz'><ins id='6zIwz'></ins><ul id='6zIwz'></ul><sub id='6zIwz'></sub></form><legend id='6zIwz'></legend><bdo id='6zIwz'><pre id='6zIwz'><center id='6zIwz'></center></pre></bdo></b><th id='6zIwz'></th></span></q></dt></tr></i><div id='6zIwz'><tfoot id='6zIwz'></tfoot><dl id='6zIwz'><fieldset id='6zIwz'></fieldset></dl></div>

                    <small id='6zIwz'></small><noframes id='6zIwz'>

                  1. <tfoot id='6zIwz'></tfoot>