Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用FormData上传javascript文件时遇到问题,接收空的$\u文件_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

使用FormData上传javascript文件时遇到问题,接收空的$\u文件

使用FormData上传javascript文件时遇到问题,接收空的$\u文件,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我使用JavaScript创建了一个简单的文件上传到我的服务器。 它可以工作,但是对于一些jpeg/png文件,我会收到空的$\u文件和$\u POST变量。 我尝试了很多方法,但没有找到解决办法 我的HTML是这样的: <input type="file" name="fileUpload" id="fileUpload" multiple="true" onchange="upload(this.files,0);"> pinrt_r($_FILES); print_r($_P

我使用JavaScript创建了一个简单的文件上传到我的服务器。 它可以工作,但是对于一些jpeg/png文件,我会收到空的
$\u文件
$\u POST
变量。 我尝试了很多方法,但没有找到解决办法

我的HTML是这样的:

<input type="file" name="fileUpload" id="fileUpload" multiple="true" onchange="upload(this.files,0);">
pinrt_r($_FILES);
print_r($_POST);
Array
(
    [file] => Array
        (
            [name] => _DSC0004.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phppUJNS5
            [error] => 0
            [size] => 5185226
        )

)
Array
(
    [aid] => 0
)
通常情况下,a会收到如下内容:

<input type="file" name="fileUpload" id="fileUpload" multiple="true" onchange="upload(this.files,0);">
pinrt_r($_FILES);
print_r($_POST);
Array
(
    [file] => Array
        (
            [name] => _DSC0004.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phppUJNS5
            [error] => 0
            [size] => 5185226
        )

)
Array
(
    [aid] => 0
)
但当我选择了一些其他图片(不是全部!)时,我收到了以下信息:

Array
(
)
Array
(
)
但若我修改这个图像(比如调整大小),它通常会上传到服务器

我尝试使用
XMLHttpRequest
并将Ajax请求替换为:

var xmlRq = new XMLHttpRequest(); 
xmlRq.upload.addEventListener("progress", function(evt) {
    if (evt.lengthComputable) {
        var percentComplete = evt.loaded / evt.total; percentComplete = parseInt(percentComplete * 100);
        console.log(percentComplete);
          if (percentComplete === 100) {
                xhrCheck = false;
                clearInterval(intreval);
            }

        }
    }, false);

    xmlRq.onreadystatechange = function () {
        if (this.readyState == 4) {
           if(this.status == 200) {
            console.log(this.response);
            }
          }
    };
    xmlRq.open('POST', '/photo_uploader.php');
    console.log(formData.getAll('file'));
    xmlRq.send(formData); 
有了这段代码,我也有同样的问题

在FireBug中,我可以看到POST数据,它总是有数据要发送

我不明白为什么有时我会收到空的
$\u文件
$\u帖子
,我的错误在哪里


感谢您的时间和帮助。

尝试增加上载最大文件大小和发布最大文件大小。
您可以从php.ini文件中更改这些值。

在regex=>
/image\.jpeg/
@lshettyl中转义元字符我不完全理解您推荐我的内容。你能解释吗?谢谢!这解决了我的问题。我完全忘记了php.ini=\