【发布时间】:2014-09-24 01:38:58
【问题描述】:
如果文件已成功下载,我如何从用户那里删除该文件?我这里有下载功能,但我不知道如何进行一次性下载。
带有 PHP 的 HTML 代码:
<?php
$result=mysql_query("SELECT * FROM school_management");
while($row=mysql_fetch_array($result))
{
?>
<div class="col-xs-6 col-md-3" style="padding-bottom: 10px;">
<div class="thumbnail">
<img src="images/ebooks/<?php echo $row['PICTURE'];?>" alt="...">
</div>
<p><center><a href="files/file.php?file=<?php echo $row['FILE_NAME'];?>" class="btn btn-xs btn-inverse" role="button" style="background-color: #2980b9;">Download</a></center></p>
</div>
<?php
}
?>
文件.php
<?php
include('config.php');
$file=$_GET['file'];
echo $file;
header("Content-disposition: attachment; filename=$file");
header("Content-type: application/pdf");
header('Content-Description: File Transfer');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
readfile("$file");
?>
我的file.php只能下载标题中带有字母的文件,但如果文件标题中有符号或数字,我就无法下载该文件。因此,我更改了所有 pdf 标题以便能够下载它。任何使我的 file.php 正确下载的建议,如果用户成功下载文件,该文件将从用户的数据库中删除。
数据库名称:caledte1_ebook
表名称:school_management
表格列:ID_NUMBER、EBOOK_FILENAME、图片
【问题讨论】:
-
为你做点什么。但是出于原则(以及您的安全!!!)将其完全更改为 mysqli() 我拒绝使用已弃用的代码。
-
@icecub 好的,我将其更改为 mysqli()。如何知道文件是否下载成功?当我获得该功能时,我可以处理该删除查询。
-
你不能。有一些技巧可以尝试检测失败的下载。见:stackoverflow.com/questions/8771226/… 但最后还是不靠谱。