我如何创建一个下载页面与后php方法
How can I create a Download Page with post php method?
我想知道如何在PHP中创建一个下载页面,下载文件而不显示文件的下载链接,并且源文件和下载页面放在网页的
. .
<form>...</form>
标记
:
<form action="example.com/download.php" method="post" target="_blank">
<input name="id" type="hidden" value="#">
<input name="filename" type="hidden" value="#">
<input name="filesize" type="hidden" value="#"><p></p><div
align="center"> > > <input type="image"> </div> </form>
最后一个输入是下载按钮图像的src…
可以任何人帮助我,这整个过程是如何工作的,以及什么放在/download.php页面....的源代码以及如何为我的网页制作表单…
实际上我在一个网站上看到了所有这些,谁也在做同样的事情。
请帮助。
您想要创建一个通用的下载帮助器,您可以在其中提供某种唯一的id,并让该帮助器将正确的文件返回给最终用户,而无需显示文件的实际路径。
有很多方法可以解决这个问题,这也取决于你想要实现什么,以及有多少文件可供下载(这将影响实现的简单性或复杂性)
例如:
如果你有一个提供数千个文件的下载站点,你会想要实现一种方法,可以很好地为N个文件工作,这可能会变得复杂(当然取决于你的需求)。
另一方面,如果您只打算提供5-10个文件,您可以创建一个非常简单的帮助器来完成这项工作。
一个简单的帮助器的简短示例:
download.php
<?php
$fileId = $_GET['fileId'];
switch($fileId){
case 1:
$fileName = 'myFile.pdf';
break;
case 2:
$fileName = 'myOtherFile.doc';
break;
default:
$fileName = null;
}
if($fileName){
// $fileName is your file identifier
$fileFullPath = $_SERVER['DOCUMENT_ROOT'].'mySecretFolder/files/'.$fileName;
if (file_exists($fileFullPath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($fileFullPath));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fileFullPath));
ob_clean();
flush();
readfile($fileFullPath);
exit;
}
}
?>