MySQL和PHP文件检索


MySQL and PHP file retrieve

这是一个简单的上传表单,所有的信息和文件都在数据库中上传,但是当我试图检索时,文件名会出现但是当我调用实际文件时,它会给出-

文件上传Successfully. % PDF - 1.5 ' r ' n %µµµµ' ' n1 0 obj ' r ' n<>>> ' ' nendobj ' r ' n2 0 obj ' r ' n<> ' ' nendobj ' r ' n3 0 obj ' r ' n<>/ProcSet [/PDF/文本/ImageB/ImageC/ImageI]>>/MediaBox[0 0 612 792]/内容4 0 r/Group<>/标签/S/StructParents 0>> ' ' nendobj ' r '陶瓷0 obj ' r ' n<> ' ' nstream ' r ' nxœuŽ1 a0…÷@þAe 'U¥d(š¦r±˜Mœuy«——ˆiaa =, =؆AniAaˆ在˜ŠVvapDyjA YFp†œG G¢CykExOsO ' ndˆ| u: icº½uµdßQNZeWø- e | 0±u·d +£akA²žÿ啊"我ÞDnƒo«问题Þ>,«——Ž' ' nendstream ' r ' nendobj ' r '它们0 obj ' r ' n<> ' ' nendobj ' r ' n6 0 ob

整个输出由以下代码填充…


PHP代码

if(isset ($_POST["submit"]))
  {
      mysqli_connect("localhost","root","");
      mysqli_select_db("upload");
      $fileName = mysqli_real_escape_string($_FILES["file"]["name"]);
      $fileData = mysqli_real_escape_string(file_get_contents($_FILES["file"]["tmp_name"]));
      $fileType = mysqli_real_escape_string($_FILES["file"]["type"]);
      if($fileType== "application/pdf" || $fileType == "application/word")
      {
          mysqli_query("INSERT INTO `files` VALUES('','$fileName','$fileData')");
          echo "File Uploaded Successfully.";
         }
      else
      {
          echo "This type of file is not allowed.";
      }

      $result = mysqli_query("SELECT `Name` , `File` FROM `files`" );
      $row = mysqli_fetch_array($result);
    echo $fileData; 

      echo "<br />";
      echo $fileName;

  }

请帮忙!!

您需要保存文件的mime类型(例如:application/pdf)以及完整的文件名(例如:test.pdf),然后,在从数据库中选择行并检索3列(mimetype,filename, filcontent)之后,您可以执行以下操作:

<?php
/*
Assuming $row contains the returned values from the database and
that it has values in these 3 columns : mimetype, filename, filecontent
*/
header('Content-Type: '.$row['mimetype']);
header('Content-Disposition: inline; filename="'.$row['filename'].'"');
header('Content-Length: ' . strlen($row['filecontent']));
echo $row['filecontent'];
?>