mysql文件上传链接

时间:2011-09-01 06:28:33

标签: php mysql upload download

我有一个上传表单

文档被上传到(Uploads / Reference /)文件夹,文档链接存储在mysql数据库中,如下所示:

$sql="INSERT INTO uploaddate (upload_id, file_link)
            VALUES
            ('$upload_id', '$target')";

存储在'uploaddata'表的'file_link'列中的链接如下:

(上传/参考/ 6206webhost change.txt)

现在当我对这个表运行一个select语句时,我想获得一个可点击的链接,而不仅仅是显示纯文本扩展名,可以用来从它的位置下载上传的文件。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以这样做:当您使用PHP 呈现页面时,创建一个链接<a href="/download.php?id=doc_id">Download</a>
然后在名为 download.php 的新页面中获取文档ID,使用该doc_id从db读取文件名并将该文件发送出去,以便用户可以下载...

<强>编辑:

  • 使用$_GET['id']获得doc_id:小心,检查值是否真的存在且sanitize it
  • 查询您的数据库;例如SELECT file_link FROM uploaddate WHERE upload_id = doc_id;
  • 查看已接受的答案here

我从其他帖子中写了这个例子,但检查一下以获取alla信息:

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;
}