我有扩展名为.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/