【问题标题】:Display an icon as per file type根据文件类型显示图标
【发布时间】:2021-11-11 22:38:09
【问题描述】:

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

我打算试试这个:

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 中做到这一点?

【问题讨论】:

  • 世界上所有的文件类型?
  • 好吧,无论如何你都需要每种文件类型的图像,所以你需要手动完成。
  • 是的,我也在想我们需要限制用户上传指定的文件,然后我们才能在前端手动检查它吗?
  • 你应该限制用户上传指定的文件,因为你不知道他们试图上传什么文件类型,你显示一个图标!
  • 太好了!谢谢..

标签: php html laravel


【解决方案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';
}

然后,如果您开始支持另一种扩展名不明确的文件类型,则只需修改此方法。

【讨论】:

    【解决方案2】:

    有一种简单的方法可以做到这一点,而无需您自己的图标。我已经回答了这个 Click here to see the answer

    【讨论】:

      猜你喜欢
      • 2020-05-07
      • 2016-12-06
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多