根据文件类型显示图标

时间:2017-10-24 11:59:54

标签: php html laravel

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

我打算尝试这个:

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中有没有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

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

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';
}

如果您开始支持其扩展名中含糊不清的其他文件类型,则只需要修改此方法。