在 src 中显示带有通配符的图像

DAC*_*sby 5 html

我在服务器上有一系列具有严格命名约定的照片:“uniqueId-readableName.jpg”。我这样做是因为我的网站数据库目前只记录 uniqueID(和一些不相关的信息),但人们偶尔需要直接查看文件服务器来浏览照片(通过 FTP),因此可读的名称很有用。例如

001456-War Horse.jpg
003295-Sunshine Daiseys.jpg
129084-Laboring at the farm 2013-08-11.jpg
Run Code Online (Sandbox Code Playgroud)

现在,我相当确定最好的选择是使用完整文件名的记录来设置数据库,但我只是想看看是否有人有我可能遗漏的任何想法。这个关于 SO 的问题是类似的,但在这里我有严格的命名约定 - 不确定这是否有任何可能性。

我将此应用于img,但同样的想法可以应用于任何文件扩展名(例如,下载“789-My Homework.zip”或“123-Family leave.zip”)。

作为我正在寻找的示例,在 Windows 资源管理器中,您可以进行文件搜索

0*.jpg
Run Code Online (Sandbox Code Playgroud)

并且可以返回以下所有文件

001456-War Horse.jpg
003295-Sunshine Daiseys.jpg
029084-Laboring at the farm 2013-08-11.jpg
Run Code Online (Sandbox Code Playgroud)

在我的情况下,开始部分总是独一无二的,所以我想使用类似的东西001456-*.jpg并让它返回001456-War Horse.jpg

有没有办法在网站上做到这一点?

<img src="001456-*.jpg" />
Run Code Online (Sandbox Code Playgroud)

Sun*_*pta 6

虽然不存在这样的方法,但您仍然可以执行服务器端脚本来实现您需要的功能。

例如,在 PHP 中,您可以使用内置命令浏览文件夹,选择与条件名称匹配的所有文件为“001456-*.jpg”,然后根据返回的记录数选择第一个文件名并将其插入 IMG标签。

这是 PHP 中的示例实现:

$files = array();
$id = "001456";
$files = glob("id-*.jpg");

echo "<img src='$files[0]' />"; //Assuming one file is found for every unique ID.
Run Code Online (Sandbox Code Playgroud)