1

我正在处理一些调整大小和下载图像类型的 php 脚本,其中事件必须以下列方式发生:

  1. 访问者上传图像文件。

  2. 图像由脚本调整大小。

  3. 调整大小的图像的下载链接出现在前端。

我的调整大小代码已经准备好并且可以工作,但我需要第三部分的帮助,这就是我如何提供最近创建的图像的下载链接。这是如何在 php 脚本中创建调整大小的图像的要点。

<?php  
       //normal validation stuff happens here
       //resizing stuff happens here

    //here is last part of the code that creates the resized image

    $filename = uniqid();
    $file = 'uploads/'.$filename.'.jpeg';   
    imagejpeg($new, $file, 80); 
    imagedestroy($new);

下载链接必须提示为下载框,而不是打开新选项卡。Headers是我所知道的,以防我们需要提供下载链接。但这对我来说毫无用处,除非我了解正确的方法。另外请理解我的情况可能会有所不同,因为这不是静态资源的下载链接。这里要下载的图像是在每次请求时动态创建的。

虽然我正在为自己的解决方案而苦苦挣扎,否则会很好,否则请为我提供一份路线图,说明应该采取哪些步骤或完成这项工作需要哪些功能。提前致谢。

4

2 回答 2

2

您可以使用正确的标题强制下载。

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
于 2013-11-04T13:32:21.963 回答
2

第 1 步 - 用户正在上传图片,您正在使用新的唯一名称(可能是来自 time() 的 md5?)将它保存在服务器上(您现在可以调整它的大小)。在响应页面上,您可以提供这样的链接www.mypage.com/downloadimg.php?fileid=54gj6hg45h654g,其中最后一部分是生成的文件名。

第 2 步 - 用户点击下载链接。你只需要从 Hanky 웃 Panky answer 发送标题,然后file_get_contents().

于 2013-11-04T13:53:42.997 回答