Php 根据文件类型显示图标

Php 根据文件类型显示图标,php,html,laravel,Php,Html,Laravel,根据前端文档列表中的文件类型显示图标的最佳方式是什么?文件类型可以是任何类型 我打算试试这个: public function getIconAttribute() { $extensions = [ 'jpg' => 'jpeg.png', 'png' => 'png.png', 'pdf' => 'pdfdocument.png', 'doc' => 'wordicon.jpg', ];

根据前端文档列表中的文件类型显示图标的最佳方式是什么?文件类型可以是任何类型

我打算试试这个:

public function getIconAttribute() {

    $extensions = [
        'jpg' => 'jpeg.png',
        'png' => 'png.png',
        'pdf' => 'pdfdocument.png',
        'doc' => 'wordicon.jpg',
    ];

    return array_get($extensions,$this->extension,'unknown.png');
}

但是我需要手动指定所有文件类型。在php/laravel中有没有更好的方法来实现这一点?

您可以将文件名与扩展名匹配,并使用文件查找

public function getIconAttribute() {
    $extension = strtolower($this->extension);

    $rewrite_map = array(
        'jpeg' => 'jpg',
        'docx' => 'doc'
    );

    if(isset($rewrite_map[$extension])) {
        $extension = $rewrite_map[$extension];
    }

    if(file_exists('/path/to/icons/dir/' . $extension . '.png')) {
        return $extension . '.png';
    }

    return 'unknown.png';
}

只有当您开始支持扩展名不明确的另一种文件类型时,才需要修改此方法。

世界上所有的文件类型?不管怎样,每个文件类型都需要一个图像,所以需要手动执行。是的,我还认为我们需要限制用户上传指定的文件,只有这样我们才能在前端手动检查,对吗?你应该限制用户上传指定的文件,因为你不知道他们试图上传的文件类型,所以你会显示一个图标!伟大的非常感谢。