我有这个字符串工作
<td><?php if (isset($row["image"])) echo '<a href="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" download="plexishop" > <img src="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" class="rounded-circle" height="30" width="30" /> </a>'; ?></td>
当我点击显示页面上的图片时,下载的文件名为“download.jpg”。我想像“download.TIMESTAMP.jpg”那样动态地重命名它。
答案 0 :(得分:0)
请尝试使用header()按照您的意愿设置下载文件名。
header('Content-Disposition: filename="download.TIMESTAMP.jpg"');
所以完整代码就是这样,
<td>
<?php if (isset($row["image"]))
{
header('Content-Disposition: filename="download.TIMESTAMP.jpg"');
echo '<a href="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" download="plexishop"><img src="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" class="rounded-circle" height="30" width="30" />
</a>';
}
?>
</td>
答案 1 :(得分:0)
使用Chrome和Firefox测试。不幸的是,IE不支持带有数据URL的“下载”属性
<?php
$path = $row['image'] = 'upload/test.jpg';
if (isset($path)) {
$filename = 'file.' . time() . '.jpg'; // use any name you want
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
echo '<a href="data:image/'.$type.';base64,'.base64_encode($data) .'" download="'.$filename.'" > <img src="data:image/jpeg;base64, '.base64_encode($data) .'" class="rounded-circle" height="20" width="20" /></a>';
}
?>
答案 2 :(得分:0)
链接的download
属性应该适用于您的情况。让我们建立名称
download="download.'.date(c).'.jpg"
在你的情况下
<td><?php if (isset($row["image"])) echo '<a href="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" download="download.'.date(c).'.jpg" > <img src="data:image/jpeg;base64,'.base64_encode( $row['image']) .'" class="rounded-circle" height="30" width="30" /> </a>'; ?></td>