PHP 文件上传丢失 tmp_name

PHP file upload missing tmp_name

我为 windows 下载并安装了 xampp。当我尝试将图片、视频或音乐上传到 php 中的本地主机时,我只得到 $_FILE['some_file'][name] 我没有得到 [size]、[type]、[error] 和大多数对我的 [tmp_name] 很重要。但是当我尝试上传一些 .rar 文件或一些文档时,我得到了所有这些文件信息。这是我尝试上传一些音乐文件时得到的结果:

    Array
(
    [name] => Array
        (
            [0] => Blondee – Moment (Original Mix) www.livingelectro.com.mp3
            [1] => Eli & Fur – Turn The Lights Down www.livingelectro.com.mp3
            [2] => Fake Forward Ft. CHRYSTAL - Brush It Off (Club Mix) www.livingelectro.com.mp3
        )

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

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

    [error] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )

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

)

[type]和[tmp_name]为空,[error]显示错误,[size]显示0kb。

但是当我尝试上传一些 rar 文件时一切正常:

Array
(
    [name] => Array
        (
            [0] => Aaargh.zip
            [1] => afta-sans.zip
            [2] => armata.zip
        )

    [type] => Array
        (
            [0] => application/octet-stream
            [1] => application/octet-stream
            [2] => application/octet-stream
        )

    [tmp_name] => Array
        (
            [0] => C:\xampp\tmp\php95EE.tmp
            [1] => C:\xampp\tmp\php95FF.tmp
            [2] => C:\xampp\tmp\php9600.tmp
        )

    [error] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
        )

    [size] => Array
        (
            [0] => 13835
            [1] => 32570
            [2] => 26454
        )

)

这是我的索引代码:

<?php
    $files = $_FILES["postFile"];
    echo '<pre>';
    print_r($files);
    echo '</pre></br></br>';
?>

如果您注意到其中没有填充所有出现的数组,您确实会看到所有上传的文件都被标记为错误!

[error] => Array
    (
        [0] => 1
        [1] => 1
        [2] => 1
    )

1 = UPLOAD_ERR_INI_SIZE

这就是为什么 none 的其他字段包含您期望的内容。

在对上传的文件进行任何操作之前,您必须始终检查错误数组。

您需要检查 php.ini 文件中的此参数并可能增加最大大小。

upload_max_filesize = ?

很可能还有这个。

post_max_size = ?

post_max_size 需要足够大以应对 upload_max_filesize * number of files uploaded + 几 k 以应对同时传递的其他字段和一般开销。

......