我想知道如何在PHP中创建一个下载文件的下载页面,而不会将文件的下载链接放在一起,并将文件和下载页面的源文件放在
的网页中。
$(document).on("click",".imgblok", function(){ p = $(this).attr("src") if(p.substr(p.length-5,1) != "W"){ $(this).attr("src",p.replace(".jpg","W.jpg")) }else{ console.log("Always W") } })
标记..
像:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img class="imgblok" src="http://phaser.io/images/examples/2/thumb/bitmapdata/replace-color.jpg" />
最后一个输入是下载按钮图像的src ...
任何正文都可以帮助我了解整个过程的工作原理,以及在/download.php页面的源代码中放置什么......以及如何为我的网页制作表单......
实际上我在网站上看到了这一切,他们正在做同样的事情。
请帮忙。提前谢谢......
答案 0 :(得分:0)
您想要创建一个通用的下载帮助程序,您可以在其中提供某种唯一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;
}
}
?>
<强> HTML 强>
<a href="https://www.my-domain.com/download.php?fileId=1"> Download PDF </a>
如果您需要提供少量文件并希望进行简单,快速的实施,这只是一个简单的示例。
如果您要为无限量或未知数量的文件服务,您需要实现高级文件服务系统(或使用现有的开源文件)。
希望它有所帮助