如何在php图像下载上添加时间戳到文件名

时间:2018-03-11 16:12:56

标签: php

我有这个字符串工作

<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”那样动态地重命名它。

3 个答案:

答案 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>