在XAMPP的php.ini中更改upload_max_filesize没有效果

时间:2017-08-27 20:22:10

标签: php codeigniter file-upload xampp

我在XAMPP的php.ini文件中将upload_max_filesizepost_max_size的值设置为128M。此外,当我显示phpinfo()时,它表示最大文件上传大小为128兆字节。

但是,当我尝试通过默认文件上传表格上传512千字节大文件时,会出现“无法上传文件!”文字。奇怪的是,它适用于较小的文件,如158 Kilobytes。

当然,我尝试更改max_file_uploads值。我多次重启XAMPP服务器。

HTML代码:

<form method="post" enctype="multipart/form-data">
    <!-- Avatar -->
    <div class="form-group">
        <label for="avatar">Avatar</label>
        <input type="file" name="avatar">                           
    </div>
</form>

PHP处理代码:

// Avatar
        if (isset($_FILES['avatar'])) {
            $fileName = $_FILES['avatar']['name'];
            $tmpName = $_FILES['avatar']['tmp_name'];
            $fileSize = $_FILES['avatar']['size'];
            $fileType = $_FILES['avatar']['type'];

            echo $fileName . " " . $fileSize . " " . $fileType . " - ";

            $newData['profile_picture'] = $this->fileModel->uploadFile($fileName, $tmpName, $fileSize, $fileType);
            unset($_FILES['avatar']);
        }

fileModel-&GT; uploadFile:

public function uploadFile($original_name, $tmpname, $size, $type)
{
    $target_dir = "files" . DIRECTORY_SEPARATOR;
    $filetype = pathinfo(basename($original_name), PATHINFO_EXTENSION);
    $target_file = $target_dir . $this->generateName() . '.' . $filetype;
    $name = explode('.' . $filetype, explode(DIRECTORY_SEPARATOR, $target_file)[1])[0];

    if (!move_uploaded_file($tmpname, $target_file)) {
        die('File couldn\'t be uploaded!');
    }

    $this->db->query('INSERT INTO files (name, original_name, type, size, path) VALUES (?, ?, ?, ?, ?)', [$name, $original_name, $type, $size, $target_file]);

    return "/file/open/" . $name;
}

上传图片时返回的内容:

KingOfDog Logo.png 162649 image/png - Couldn't upload the file!

以下是执行var_dump($_FILES)时返回的内容:

array(2){[“avatar”] =&gt; array(5){[“name”] =&gt; string(18)“KingOfDog Logo.png”[“type”] =&gt; string(9)“image / png”[“tmp_name”] =&gt; string(25)“D:\ xamppi \ tmp \ phpED5E.tmp”[“error”] =&gt; int(0)[“size”] =&gt; int(162649)} [“header”] =&gt; array(5){[“name”] =&gt; string(0)“”[“type”] =&gt; string(0)“”[“tmp_name”] =&gt; string(0)“”[“error”] =&gt; int(4)[“size”] =&gt; int(0)}}

我在本地Windows机器上使用XAMPP v3.2.2在PHP版本5.6.28上运行CodeIgniter。另外,我正在使用Bootstrap和jQuery。

1 个答案:

答案 0 :(得分:0)

您还必须增加max_post_size值,因为它是晚餐,文件上传通过POST请求。