【问题标题】:how to download a pdf file using php whose path is stored in the mysql? [closed]如何使用php下载pdf文件,其路径存储在mysql中? [关闭]
【发布时间】:2014-09-09 10:34:00
【问题描述】:

我正在使用此代码将 pdf 文件写入服务器。它将文件发送到一个名为 DATA 的文件夹。我将文件名存储到mysql。

$target = "data/";  $target = $target . basename( $_FILES['file']['name']); 

if(isset($_POST['Submit']))
{
{
$path = $_FILES['file']['name'];
}  

if(move_uploaded_file($_FILES['file']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded;  
}
else
{   
echo "Sorry, there was a problem uploading your file.";
} 

现在请谁能帮我下载这个pdf文件。??

【问题讨论】:

  • 没有看到存储信息的数据库函数,无法说出如何检索它。
  • 只是将文件路径作为链接回显?
  • @TraianTatic.. 请问你能举个例子吗??
  • @Chandreshsingh 直接在浏览器中访问 .pdf 文件(这里是 example)允许您查看它并通过右键单击下载它。这是做你想做的最简单和最简单的方法。因此,您所要做的就是 echo '<a href="data/'.$file_name.'">Download PDF</a>; ,考虑到 $file_name 是您存储在数据库中的值,并且您实际上有这样做的知识。

标签: php html mysql


【解决方案1】:

如果您能够上传并存储 PDF 的名称在 mysql 中,那么您将需要查询 db 并为 PDF 构建路径并发送下载标头以强制在浏览器中下载

下面是一些可以帮助你的代码

HTML

为每一行创建动态链接,Tno 似乎是主键,所以我将下载链接作为文件参数传递

<a href="download.php?file=Tno">Download</a>

PHP

//Get the file id form $_GET['file'];
$id = $_GET['file'];

//Get the row from db
$sql = "SELECT file FROM tenders WHERE Tno = $id";

//Build the path 
$file = "data/" . $mysql_row['file '];

header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source
readfile($file);

确保在这段代码之前没有回显任何内容

【讨论】:

  • 请解释一下...这段代码需要在一个新的.php文件中吗?或者在我提供下载按钮的页面上?
  • 在新页面中会像download.php 一样好。如果你能告诉我们pdf的表格列名,我可以帮助你更好
  • 插入投标(Tno,Tid,file)values('$Tno','$Tid','$path'); Column-“文件”存储了收集在变量$path中的pdf文件的名称。
  • 以及您如何制作像这样的下载链接&lt;a href="download.php?file=Tno"&gt;Download&lt;/a&gt; 或发布您所做的事情
  • 感谢兄弟的努力...实际上以前我将整个文档字符串化为 blob 形式,但后来我放弃了这个想法。我对将路径名存储在数据库中的概念不熟悉..但无论如何我已经完成了存储路径名的“一半”工作。但现在我不知道如何下载pdf .. :(请提出一些建议..
【解决方案2】:
   // link for download :
        <a href="download.php"> download </a>

  //  php code inside download.php
        <?php
        //download.php
        $filename="sample.pdf"; // YOUR File name retrive from database
        $file= "data/".$filename; // YOUR Root path for pdf folder storage
        $len = filesize($file); // Calculate File Size
        ob_clean();
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: public"); 
        header("Content-Description: File Transfer");
        header("Content-Type:application/pdf"); // Send type of file
        $header="Content-Disposition: attachment; filename=$filename;"; // Send File Name
        header($header );
        header("Content-Transfer-Encoding: binary");
        header("Content-Length: ".$len); // Send File Size
        @readfile($file);
        exit;

        ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2018-11-09
    • 2016-06-23
    • 2020-11-17
    相关资源
    最近更新 更多