Php函数来保存图像

Php函数来保存图像,php,image,function,save,Php,Image,Function,Save,例如,我的网站上有一些用于用户化身的图像 我想添加一个链接,允许用户下载头像图像,当有人点击链接时,应该会出现另存为对话框 现在的问题是图片下载不正确,但出现了对话框,下面是链接和代码: <?php $username = $_GET['username']; $size = $_GET['size']; $ext = $_GET['ext']; $border = $_GET['border']; $basename = basename($_S

例如,我的网站上有一些用于用户化身的图像 我想添加一个链接,允许用户下载头像图像,当有人点击链接时,应该会出现另存为对话框


现在的问题是图片下载不正确,但出现了对话框,下面是链接和代码:

<?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;
?>

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

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

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

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

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


只需记住验证GET输入。

当然,他们总是可以在图像上单击鼠标右键并“另存为”,通常一个头像链接会将您带到用户的个人资料页面。将其更改为“下载图像”会打破一开始就有一个化身的观点。我建议将其作为个人资料的链接,然后在个人资料页面上添加一个明确的“下载此图像”链接。@mark-b我知道,网站就是这样工作的,我想问的是如何创建“下载此图像”链接,以便在用户单击时显示另存为对话框。到目前为止,您做了哪些尝试?你有任何相关的代码,你有问题吗?我没有尝试任何东西,因为我没有找到任何帮助。1.例如,我有一张照片。2.我想在网站上放一个链接,比如“下载你的头像”,点击时会显示一个“另存为”对话框,比如当你试图下载一个文件,但有一个pictureThanks,这就是我要找的!!:D