我有一个上传表单
文档被上传到(Uploads/Reference/)文件夹,文档的链接被存储在mysql数据库中,如下所示:
$sql="INSERT INTO uploaddate (upload_id, file_link)
VALUES
('$upload_id', '$target')";
存储在'uploaddata'表'file_link'列中的链接如下:
(上传/引用/6206高手写change.txt)
现在,当我运行一个select语句到这个表,而不是只是显示纯文本扩展名,我想得到一个可点击的链接,可用于下载上传的文档从它的位置。
我该怎么做?
您可以这样做:当您使用PHP渲染页面时,创建一个链接<a href="/download.php?id=doc_id">Download</a>
。
然后在一个名为download.php的新页面获取文档id,使用doc_id从db读取文件名并发送该文件,以便用户可以下载它…
编辑:
- 与
$_GET['id']
你得到doc_id:小心,检查如果值真的存在,并消毒 - 查询数据库;例如
SELECT file_link FROM uploaddate WHERE upload_id = doc_id;
- 请看这里被接受的答案
我写的例子从其他帖子,但检查得到所有的信息:
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
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($file));
ob_clean();
flush();
readfile($file);
exit;
}