由于脚本中的错误,我有一些文件以某种方式丢失了扩展名。所以现在,我有一个包含许多文件的文件夹,例如" image"或" 123"而不是" image.jpg"或" 123.pdf"。通过使用finfo,我可以抓住mime类型。 php中的类似内容也可以用于扩展,以便我可以以某种方式修复它们吗? (这只是文件名 - 文件没有损坏)
我当然可以创建一个包含可能文件类型的巨大数组。但这种方法不安全"因为有许多具有相同MIME类型的文件扩展名。
答案 0 :(得分:0)
创建新目录recover..
试试这个......
<?php
$fp = opendir("files/");
$typeDetect = array(
"filename" => "type",
);
while($file = readdir($fp)){
if(array_key_exists(pathinfo($file, PATHINFO_FILENAME), $typeDetect)){
echo $typeDetect[pathinfo($file, PATHINFO_FILENAME)] . "<br/>";
if(copy("files/" . pathinfo($file, PATHINFO_FILENAME), "recover/" . pathinfo($file, PATHINFO_FILENAME) . "." . $typeDetect[pathinfo($file, PATHINFO_FILENAME)] )){
echo "Success";
}
}else{
echo "File not exists";
}
}
?>
添加文件名并在数组$typeDetect
中输入并执行
这应该有用......
答案 1 :(得分:0)
finfo_file()可能会帮助您获取损坏文件的扩展名。
请参阅以下行代码:
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);