2 回答
TA贡献1783条经验 获得超4个赞
您可以使用$_FILES["file"]["type"]获取上传文件类型,但这可能不准确。您可以使用以下代码来获取文件类型。
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $temp_name);
finfo_close($finfo);
然后你可以检查是否$mime_type在类似的东西中,
'image/jpeg' => FILE_TYPE_JPG,
'image/jpg' => FILE_TYPE_JPG,
'image/png' => FILE_TYPE_PNG,
'image/gif' => FILE_TYPE_GIF,
'video/mp4' => FILE_TYPE_MP4,
'video/webm' => FILE_TYPE_WEBM,
从mimetype上传的文件中,您可以过滤您想要的图像和视频并删除不需要的文件。然后将图像和视频移动到不同的目录。
要将视频传输到 mp4,您可以使用 ffmpeg -i example.mov example.mp4
要将图像传输到 jpg,您可以使用 convert 0000.png 0000.jpg
对于随机名称,您可以md5_file($file_name)用作文件名。
请注意,当您转换视频和图像时,可能有更多参数ffmpeg和 imagemagickconvert需要调整。
TA贡献1874条经验 获得超12个赞
您将必须编写一个阻止原始文件类型的 switch 语句,然后使用多个库将原始文件类型转换为首选文件类型。
switch ($originalfiletype){
case '.png':
//Process image through a .png to .jpg library
break;
case '.pdf':
//Process image through a .pdf to .jpg library
break;
case '.webm':
//Process video through .webm to .mp4 library
break;
default:
echo "Your file type is not supported";
break;
}
这个过程非常不方便和乏味,但很遗憾,没有其他办法。PHP 没有内置的库可以转换所有文件类型。
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报