如何从MySQL数据库中检索pdf和word文件并显示在html标记中

时间:2015-01-22 18:44:02

标签: php html mysql

我想和pdf

中的选定答案一样
  

How to retrieve images from MySQL database and display in an html tag

我想在MySQL数据库中检索pdf并显示它的浏览器 这是我的代码:

<?php

      $id = $_GET['id'];
      // do some validation here to ensure id is safe

      $link = mysql_connect("localhost", "root", "");
      mysql_select_db("workshopinternational");
      $sql = "SELECT fichier FROM inscrits WHERE id=$id";
      $result = mysql_query($sql);
      $row = mysql_fetch_assoc($result);
      mysql_close($link);

      header("Content-type: image/jpg");
      //header('Content-type: application/pdf');

      //readfile('original.pdf');
      echo $row['fichier'];

      ?> 

1 个答案:

答案 0 :(得分:3)

由于很多原因,将文件保存在数据库中可能不是一个好主意。虽然像mysql这样的数据库非常适合关系数据,但它们在快速获取文件方面效率不高。代替:

  1. 每个文件都应保存在具有唯一ID的目录中。所以,mydocument.docx可能在文件中/ 012312234232 / mydocument.docx
  2. 我们会在数据库中存储文件名,唯一ID和其他一些方便的元数据(作者,拥有者,权限等)。
  3. 当有人想要该文件时,将其映射到磁盘,然后重定向它们,或fopen()文件,fread()文件,然后在设置内容后将其作为回复发送 - 类型&#39;标头匹配文件,或作为application / octect-stream
  4. 您应该记住在保存文件之前检查是否有足够的磁盘空间,并确保您的唯一ID实际上是唯一的 - 例如数据库表中的主键。并且,确保清理进入数据库查询的任何内容。

    此外,您应该切换到使用php mysqli插件(或类似的)而不是mysql_ *方法,因为它们被认为是不安全的并且已弃用。