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

时间:2019-04-23 18:33:30

标签: php mysql

我正在尝试实现一个php,mySQL Admin面板/仪表板,该面板显示了已上传文件的小预览图像,如果该文件不是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"]

我想我要的是,如果我错了,请纠正我,如果是,否则,否则,或者是php开关。我只是不知道如何使它像前面提到的那样工作。

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

感谢您的帮助,在此先感谢您。

狐猴

1 个答案:

答案 0 :(得分: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="">