0

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


现在问题是图片没有正常下载,但是出现了对话框,下面是头像下载链接,代码:

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

1 回答 1

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 输入。

于 2013-03-02T15:39:11.217 回答