我使用 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
。在我了解了他们在整个过程中的作用之后,一切都很容易。后来,当我下载图像时,它们出现了损坏。我如何排序我每次都保存损坏的文件,在记事本++中打开它们并检查错误。现在我的应用程序完美无缺。当然,现在代码发生了巨大的变化。感谢大家对他们提供帮助的任何一点兴趣。