首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用<a>标签下载大尺寸图片

如何使用<a>标签下载大尺寸图片
EN

Stack Overflow用户
提问于 2019-07-15 03:04:17
回答 1查看 112关注 0票数 0

我正在尝试连接到数据库并从那里查看图片。尽管显示了所有图片,但无法下载它们。为了下载,我使用了tag。

这是我的代码。

代码语言:javascript
复制
while($row = mysqli_fetch_array($result))  
                    {  
                         echo '  
                              <tr>  
                                   <td align="center"> 
                                        <a href="data:image/jpeg;base64,'.base64_encode($row['Pilt'] ).'" download>
                                            <img src="data:image/jpeg;base64,'.base64_encode($row['Pilt'] ).'" width=400 class="img-thumnail" />
                                        </a>
                                   </td>  
                              </tr>  
                         ';  
                    }

这是我获取图片的数据库的一小部分。https://imgur.com/yZGsFzb。所以我注意到只有一张照片被下载,大小是150.4KiB。

我希望通过点击图像(任何大小),它将被下载。现在,当我单击图像时,会出现错误,如此https://imgur.com/yZrlIH8,而我希望看到类似于此https://imgur.com/4vkUukp的内容。我将非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-07-15 06:22:04

我建议你停止以这种方式打印大量的大图片,它们将被硬编码到HTML代码中,并一次性下载到浏览器的缓存中,2次(包括点击)。这浪费了RAM和带宽。你得到的网络错误可能是由你的链接中href的异常大小引起的(对于你的浏览器来说,甚至可能看起来有点像恶意软件)。

相反,您希望首先在PHP脚本上动态地提供这些图像(通过将头文件设置为'Content-Type: image/png'并打印从数据库中获得的图像内容),并提供脚本的直接URL。

这个例子就像你的截图中描述的那样,我指出了你应该在哪里替换你的SQL查询来获得图像:

代码语言:javascript
复制
while(for all your rows)  
{  
echo '  
  <tr>  
    <td align="center"> 
      <a href="image.php?id=' . $id . '" download>
        <img src="image.php?link=' . $id . '" width=400 class="img-thumnail" />
      </a>
  </td>  
</tr>';
}

并且image.php看起来类似于:

代码语言:javascript
复制
<?php
$id = htmlspecialchars($_GET['id']);
header('Content-Type: image/png');
$content = store the image contents from the BD here ($row['Pilt'] in your code);
echo $content;

请注意,image.php动态地提供图像,我假设使用一个id来标识每个图像(可能是您的行id?如果if还不是公共的,你也可以考虑更安全的标识符)。这是PHP中常见的安全实践,因此您不会向攻击者提供绝对文件路径或其他信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57030320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档