Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从MySQL数据库检索pdf和word文件并显示在html标记中_Php_Html_Mysql - Fatal编程技术网

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

Php 如何从MySQL数据库检索pdf和word文件并显示在html标记中,php,html,mysql,Php,Html,Mysql,请我想做同样的选择答案在pdf格式 我想在MySQL数据库中检索pdf并在浏览器中显示它 这是我的密码: <?php $id = $_GET['id']; // do some validation here to ensure id is safe $link = mysql_connect("localhost", "root", ""); mysql_select_db("workshopinternational");

请我想做同样的选择答案在pdf格式

我想在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'];

      ?> 

出于许多原因,将文件保存在数据库中可能不是一个好主意。虽然像mysql这样的数据库对于关系数据非常有用,但它们在快速获取文件方面效率不高。相反:

  • 每个文件都应保存在具有唯一ID的目录中。因此,mydocument.docx可能位于/012312234232/mydocument.docx文件中
  • 我们将在数据库中存储文件名、唯一ID和其他一些方便的元数据(作者、所有者、权限等)
  • 当有人需要该文件时,将其映射到磁盘,并将其重定向,或将其设置为fopen()文件,将其设置为fread()文件,然后将其作为您的响应发送,然后将其设置为与该文件匹配,或设置为application/octect流
  • 在保存文件之前,您应该记得检查您是否有足够的磁盘空间,并确保您的唯一ID实际上是唯一的,例如数据库表中的主键。并且,确保清理进入数据库查询的任何内容


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

    除了输出jpg mime类型之外,这对您来说到底是怎么回事?还有可爱的脆弱。享受您的服务器pwn3d。@MarcB不是内容类型应用程序/pdf吗?是的,但您已经将其注释掉了。因此,此代码将告诉浏览器它正在通过图像发送。我将内容类型更改为application/pdf,但如果显示扩展名“.doc”或“.docx”不起作用,则文件为空