【问题标题】:Php function to save a image保存图片的php函数
【发布时间】:2013-03-02 15:13:17
【问题描述】:

我的网站上有一些用于用户头像的图片,例如http://drksde.tk/images/avatar-Luxie.jpeg 我想添加一个允许用户下载头像图像的链接,当有人单击该链接时,应出现“另存为”对话框。


现在问题是图片没有正常下载,但是出现对话框,这里是download the avatar的链接,代码:

<?php
    $username = $_GET['username'];
    $size = $_GET['size'];
    $ext = $_GET['ext'];
    $border = $_GET['border'];
    $basename = basename($_SERVER['REQUEST_URI']);

    if(!isset($size)) { $size = 'small'; }
    if(!isset($ext)) { $ext = 'jpeg'; }
    if(!isset($border)) { $border = 'true'; }

$file = 'avatar-'.$size.'-'.$username.'.'.$ext;

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.$basename);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    #header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
?>

【问题讨论】:

  • 当然,他们总是可以简单地右键单击图像并“另存为”
  • 通常,头像链接会将您带到用户的个人资料页面。将其更改为“下载图像”会破坏首先拥有头像的点。我建议将其保留为个人资料的链接,然后在个人资料页面上放置一个明确的“下载此图片”链接。
  • @mark-b 我知道,网站就是这样工作的,我在问如何制作“下载此图片”链接,以便在用户单击时显示另存为对话框跨度>
  • 到目前为止你尝试过什么?您是否有任何相关代码遇到问题?
  • 我什么都没试过,因为我没有找到任何帮助。 1. 我有一张图片,例如drksde.tk/images/avatar-Luxie.png。 2. 我想在网站上放一个链接,比如“下载你的头像”,点击时会显示一个另存为对话框,比如当你尝试下载文件时,但带有图片

标签: php image function save


【解决方案1】:

您可以在此处查看 php.net 手册中的 示例 #1

http://php.net/manual/en/function.readfile.php

它显示了如何强制下载图像。

您可以将其放入脚本image.php 并像这样使用它

 <a href="http://example.com/image.php?user=123">download avatar image</a>

您可以将它与$_GET['user'] 参数一起使用以提供正确的用户图像文件。

只要记住验证 GET 输入即可。

【讨论】:

  • 谢谢,这就是我要找的!! :D
猜你喜欢
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多