gpt4 book ai didi

php - 更改上传图片的文件扩展名

转载 作者:行者123 更新时间:2023-12-04 05:31:55 26 4
gpt4 key购买 nike

我正在创建一个 Zend Framework 应用程序,用户可以在其中上传个人资料图片。可接受的文件类型为 png、jpg 和 gif。图像最终被存储为用户的 id + 文件扩展名。

我想知道的是,假设用户上传了 png 或 gif 文件,将文件扩展名更改为 jpg 是否安全?

这样,所有个人资料图像最终都会具有相同的文件扩展名,我只是不确定像这样更改文件类型是否是一个好主意。

最佳答案

即使我从未尝试过,所以我不能说它是否真的有效,我认为更改文件扩展名不是一个好主意,因为如果 Web 服务器使用文件扩展名来确定内容类型响应,浏览器无法显示图像。
我认为您应该在上传后将 gif/png 图像转换为 jpeg 格式,然后最终移动、重命名或删除原始图像,只将转换后的 jpg 图像留在上传文件夹中。
例如,如果您启用了 GD extension ,你可以这样做:

<?php

/**
* Convert gif or png image to jpg format
*
* @param string original image file name
* @param int output image quality (0..100)
* @return string output jpg file name
*/
function img2jpeg($filename, $quality = 100) {
if (file_exists($filename) && is_readable($filename)) {
$p = pathinfo($filename);
$ext = strtolower($p['extension']);
if ($ext == "jpg") {
return($filename);
} else if ($img = imagecreatefromstring(file_get_contents($filename))) {
$newname = $p['dirname'].'/'.$p['filename'].'.jpg';
if (imagejpeg($img, $newname, $quality)) {
imagedestroy($img);
return($newname);
} else {
imagedestroy($img);
die("Error creating ".$newname."\n");
}
}
}
die("Error loading ".$filename."\n");
}

?>

关于php - 更改上传图片的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com