我有一个为我开发的自定义插件,我正在尝试调整它的操作并修复一个小错误。
根据特定条件,该插件向用户提供一个自定义url/链接,指向要下载的zip文件。它在下载之前屏蔽文件位置,以向用户隐藏位置。它在正常情况下工作正常:如果用户分配了文件,则会显示下载文件的链接,并通过浏览器fine下载zip文件。但如果该文件不存在,则会下载一个垃圾/格式错误的zip/html文件。
我希望屏幕上只显示“抱歉,找不到文件”-没有其他内容。
这是下载掩码文件中当前提供的代码。
<?php
/**
*
**/
$file = base64_decode($_GET[\'file\']);
if($file === \'\' || !isset($file)){
echo "Sorry, file not found.";
die();
}else{
header(\'Content-Description: File Transfer\');
header(\'Content-Type: application/octet-stream\');
header(\'Content-Disposition: attachment; filename="\'.basename($file).\'"\');
header(\'Expires: 0\');
header(\'Cache-Control: must-revalidate\');
header(\'Pragma: public\');
readfile($file);
exit;
}
这是下载的格式错误的文件的内容。
<br />
<b>Warning</b>: readfile(http://{domain(dot)com/{somedirectory}/{somefilename}.zip): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
in <b>/home/{account}/public_html/wp-content/plugins/{customplugin}/downloadmask.php</b> on line <b>18</b><br />
有人说这是因为我启用了PHP警告和通知?不知道,在PHP方面,我是个不折不扣的黑客——只知道可能会给自己带来麻烦。但我想学习:)
谢谢