php - 图片 MIME 类型和扩展名正确,但上传失败

标签 php image codeigniter-3

我有扩展名为.jpeg的图像,mime类型是image/jpeg..这是var_dump()使用文件上传(输入类型="file")从上传的图像

array (size=5)
 'name' => string 'WhatsApp Image 2023-02-01 at 17.07.41.jpeg' (length=42)
 'type' => string 'image/jpeg' (length=10)
 'tmp_name' => string 'D:\xampp\tmp\phpDAF2.tmp' (length=24)
 'error' => int 0
 'size' => int 140484

其他引用文献说也许 mimes.php (哦,是的,我正在使用 codeigniter 3),这是 mimes.php对于 jpeg 扩展名,这里是 mimes.php jpeg 上的线条

'gif'   =>  'image/gif',
'jpeg'  =>  array('image/jpeg', 'image/pjpeg'),
'jpg'   =>  array('image/jpeg', 'image/pjpeg'),

当我上传附加代码时我很困惑

$config['upload_path'] = './uploads/patient_img/';
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['file_name'] = strtolower($patient->get_name());
$config['overwrite'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['image_library'] = 'gd2';

$this->load->library('upload', $config);

$this->upload->initialize($config);

$error = [];
$listing_filename = [];
foreach ($list_image as $row) {
    if ($_FILES['image_' . $row]['name'] != '' && is_null($this->input->post('existing_image_' . $row))) {
        if (!$this->upload->do_upload('image_' . $row)) {
            $error[] = $this->upload->display_errors();
            print_r($this->upload->display_errors());
            die();
            break;
        } else {
            $listing_filename[] = $this->upload->data('file_name');
        }
    }
}

我收到 CI 上传错误“不允许您尝试上传的文件类型。”

有人知道这是怎么回事吗?因为我找不到答案..非常感谢

最佳答案

我找到了解决方案!

事实证明,我使用了字符串组合作为文件名,当我仔细检查它时,名称包含“.” (点)使得上传的图片已经带有“.”

假设我输入“this is.a name”,上传的图像文件名将为“this_is._a_name”,导致扩展名无效

所以解决方案就是简单地替换“。”使用正则表达式

关于php - 图片 MIME 类型和扩展名正确,但上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75309274/

相关文章:

php - POST 响应为 null()

php - 引用 - 这个错误在 PHP 中意味着什么?

php - 如何按特定值对数组进行分组?

php - 获取PostgreSQL的RAISE NOTICE的所有通知

php - 在 WAMP 环境中设置 Concerto 自适应测试平台时出错

php - 如何在 CodeIgniter 中使动态变量值全局化?

image - 非均匀插值

image - 透视变换四边形平面中的给定点(x,y)到矩形平面的点(x',y')?

image - 动态调整图像大小,或在磁盘上存储不同大小的图像?

php - 未找到 CodeIgniter 路由