如何为特定文件扩展名类型显示特定图像?

问题描述 投票:0回答:1

我正在尝试实现一个php,mySQL管理面板/仪表板,显示已上传文件的小预览图像,如果该文件不是jpg,jpeg,png或gif,那么我想显示一个占位符图像。

因此,例如,如果上传的文件实际上是jpg,则表中的预览列将显示与存储在db中的文件名相关联的图像(我已经工作)但是如果它是pdf则应该显示库存/填充/我选择的预定义图像。

我希望在PHP中做到这一点,但在这个领域的知识非常有限,这个项目是我的第一个大型php项目。

我试图使用js / jquery开关实现此功能,但没有这样的运气,最后一次尝试的代码包含在下面:


 $(document).ready(function() {

 var fileName, fileExtension;

 fileName = event.target.innerHTML;

 fileExtension = fileName.replace(/^.*\./, '');

 switch (fileExtension) {

  case 'png': case 'jpeg': case 'jpg':
      $('#tableImg').attr("src","<?php echo $row["fileName"]; ?>");
      break;

  case 'zip':
      $('#tableImg').attr("src","images/pdf.png");
      break;

  case 'pdf':
      $('#tableImg').attr("src","images/pdf.png");
      break;
    }
});

我不再使用这种方法了,这只是我最后一次尝试让它运行起来。

预览列当前在php文件中调用,如此;

<img id="tableImg"  class="admin-thumb" src="<?php echo $row["fileName"]; ?>" alt="">

我知道我目前的方法只允许显示带有jpg,png和其他图像相关扩展名的文件,但我无法弄清楚如何更换echo $row["filename"]

我认为我想要的是,如果我错了,请纠正我是if,else if,else还是php开关。我只是不知道如何让它按照前面提到的方式工作。

回顾一下:我需要一个辅助,使表格的预览列显示与文件名/ URL相关联的图像,或者如果文件类型是zip,pdf或非图像文件,则显示我选择的占位符图像。我确实有一个截图要分享,但我还没有10个代表这样做。

任何帮助表示赞赏,并提前致谢。

成员

php mysql
1个回答
0
投票

SplFileInfo应该提供扩展,然后只需使用switch语句来设置要显示的图像。

$myfile=$row["fileName"];
$info = new SplFileInfo($myfile);
$ext = $info->getExtension();

switch ($ext) {
 case 'zip':
    $image='zip.png';
    break;
 case 'pdf':
    $image='pdf.png';
    break;
 default:
    $image=$myFile;
}


<img id="tableImg"  class="admin-thumb" src="<?= $image ?>" alt="">
© www.soinside.com 2019 - 2024. All rights reserved.