警告:exif_imagetype():文件名不能为空

时间:2017-05-11 07:09:35

标签: php

我可以通过文件上传表单上传最多10张图片但是当我尝试上传超过10张图片时,PHP会抛出此错误:

  

警告:exif_imagetype():文件名不能为空

我已经编辑了我的PHP.ini文件。我在那里:

post_max_size = 40M
upload_max_filesize = 40M
max_file_uploads = 20

我已经检查了我的phpinfo页面并确认已设置这些设置。我已经多次重启Apache了。

我知道我没有超过最大文件大小限制,因为我创建了一些每个只有1kb的测试图像并且他们不会上传,但我能够上传大量MB的大图像如果我上传的文件少于10个。

我的表单如下:

<form id="photos_form" action="" enctype="multipart/form-data" method="post"><input type="hidden" name="temp_id" value="20170511-073423-2820394"><section><h1>Add Photos</h1><div id="photos_wrap"><label for="photos">Select photos of your item to upload:</label><br><button id="choose_photos_btn" type="button">Add photos</button><input id="photos" name="photos[]" type="file" multiple="multiple" ></div><button id="photos_submit">Upload selected photos</button><div id="photos_preview"></div></section></form>

通过XHR

发布
 // Photos form submit
$('body').on('submit', '#photos_form', function (e) {
        //disable the default form submission
        e.preventDefault();

        $('#photos_submit').addClass('uploading').text('Uploading...');

        //grab all form data
        var formData = new FormData($(this)[0]);



        $.ajax({
            url: 'lib/upload-photos',
            dataType: 'html',
            type: 'POST',
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                $('#photos').val('');
                $('#photos_submit').hide();
                $('#photos_wrap').removeClass('error');
                $('#photos_wrap .photos_error, #photos_preview .deleted, #upload_errors').remove();

                $('#photos_preview').append(data);
            },
            error: function () {
                alert("Error uploading photos");
            }
        });


        return false;
    });

我的PHP看起来像:

if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
        if (isset($_FILES ['photos'])) {
            $num_pics = count($_FILES ['photos'] ['name']);
            echo 'num pics is ' .$num_pics;
        }
}

并说     num pics是1

$ FILES的print_r给出:

Array
(
[photos] => Array
    (
        [name] => Array
            (
                [0] => 
            )

        [type] => Array
            (
                [0] => 
            )

        [tmp_name] => Array
            (
                [0] => 
            )

        [error] => Array
            (
                [0] => 4
            )

        [size] => Array
            (
                [0] => 0
            )

    )

)

如何上传10张以上的图片?

1 个答案:

答案 0 :(得分:0)

我有一些Javascript覆盖了PHP.ini设置。那就是问题所在。