【问题标题】:Changing upload_max_filesize in php.ini of XAMPP doesn't have an effect在 XAMPP 的 php.ini 中更改 upload_max_filesize 没有效果
【发布时间】:2018-02-05 03:11:53
【问题描述】:

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

但是,当我尝试通过默认文件上传表单上传 512 KB 的大文件时,只会出现“无法上传文件!”的文本。奇怪的是,它适用于较小的文件,例如 158 KB。

当然,我尝试更改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->上传文件:

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"]=> array(5) { ["name"]=> string(18) "KingOfDog Logo.png" ["type"]=> string(9) "图片/png" ["tmp_name"]=> string(25) "D:\xamppi\tmp\phpED5E.tmp" ["error"]=> int(0) ["size"]=> int(162649) } [ "header"]=> array(5) { ["name"]=> string(0) "" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["错误"]=> int(4) ["size"]=> int(0) } }

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

【问题讨论】:

  • "无法上传文件!"你设置了这个错误吗?发布处理上传的代码
  • @MehdiBounya 不,我没有设置此错误。在我的整个项目中,PHPStorm 找不到这个字符串。
  • 请使用您的上传代码重新编辑您的问题。
  • print_r($_FILES); 会告诉你真正的错误
  • @wolfgang1983 完成。

标签: php codeigniter file-upload xampp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-06-18
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2016-06-22
    相关资源
    最近更新 更多