如何防止更改上传的图像类型JPG为JPEG

问题描述 投票:1回答:1

此脚本自动将上传的图像类型JPG更改为JPEG

怎么预防?我不想改变图像类型。

if (is_uploaded_file($_FILES['myfile']['tmp_name']) && ($_FILES["myfile"]["size"] <= 8192 * 1 * 8192)) {
   $enabled = array(
       IMAGETYPE_PNG,
       IMAGETYPE_JPEG
   );
   list($width, $height, $extension) = getimagesize($_FILES['myfile']['tmp_name']);
   if (in_array($extension, $enabled)) {
       $ext     = image_type_to_extension($extension, true);
       $newname = $username . $id . '-' . time() . $ext;
       $imglink = $upload_folder . '/' . $newname;
       if (@move_uploaded_file($_FILES['myfile']['tmp_name'], "$upload_folder/" . $newname))

       $result     = 1;
php image types
1个回答
0
投票

从文件数据中提取原始扩展名,而不是image_type_to_extension

替换这一行

$ext     = image_type_to_extension($extension, true);

有了这个

$ext = "." . strtolower(pathinfo($_FILES['myfile']["name"],PATHINFO_EXTENSION));

编辑:允许JPG扩展您必须在确认图像是getimagesize()的真实图像文件后进行自己的检查。

$allowedExtensions = ['jpg','png','jpeg'];
if(in_array($ext, $allowedExtensions)){
    //it's an allowed extension 
}
© www.soinside.com 2019 - 2024. All rights reserved.