我使用wordpress cms并且我正在制作一个小脚本,其中访问者可以上传图像,调整大小和下载。我陷入了下载阶段。我已经编写了大部分代码,但我无法将这些内容连接在一起以使其以某种方式工作。其中首先是resize.php,它基本上调整了图像的大小并创建了一个jpeg文件。这是我的resize.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);
第二是download.php。这是我的download.php中的代码。如果你在代码中看到很多问号,那就意味着我确信这些是我缺少的代码。
// ????????????
$FilePath = TEMPLATEPATH. '/resize/uploads/';
$final = $FilePath . $FileName;
$size = filesize($final) ;
header("Content-Disposition: attachment; filename=\"". $FileName ."\"");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Transfer-Encoding: binary");
header('Content-Description: File Transfer');
header("Content-Length: ". $size ."");
header('Content-Type: image/jpeg');
header("Expires: 0");
header("Pragma: no-cache");
ob_clean();
flush();
echo (readfile($final));
第三是我目前在模板页面上的html链接,也是缺少代码的问号。如果有人点击链接,他们应该获得新创建的已调整大小的图像文件。
<a href="'.get_template_directory_uri().'/resize/download.php???????">DOWNLOAD</a>'
我希望你能解决我的问题。我正在努力弄清楚这三者如何协同工作,为最近调整大小的图像创建下载链接。虽然我自己正在努力寻求解决方案,但请帮我指出错误并提出更正建议。谢谢。
最终更新:经过几个小时的努力,我现在整理了。我之前没有意识到我唯一遗漏的是query string
和$_GET
。在我理解了他们在整个过程中的角色后,一切都很简单。后来当我下载图像时,它们出现了腐败现象。我如何排序我每次保存损坏的文件,在记事本++中打开它们并检查错误。现在我的申请完美无瑕。当然,代码现在已经彻底改变了。感谢所有人,无论他们有什么兴趣,他们都会提供帮助。