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 關注
- 157 瀏覽
添加回答
舉報