【问题标题】:Why can't I get my chunks of pdf into the mysql database?为什么我不能将我的 pdf 块放入 mysql 数据库?
【发布时间】:2012-05-29 13:29:54
【问题描述】:

所以,这是我试图用来将大 pdf 文件分成块并将其存储在我的数据库中的代码。是否有任何原因无法正常工作。我整天都在努力解决这个问题,并且绕了一大圈。将不胜感激任何帮助!谢谢!

<?
$username="something";
$password="something";
$database="something";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Unable to select database");

$STARTFILE = 1;
$ONFILE = "file" . $STARTFILE;

while (isset($HTTP_POST_FILES["$ONFILE"])) {

// Try!
$SrcPathFile = $HTTP_POST_FILES["$ONFILE"]["tmp_name"];
$SrcFileType = $HTTP_POST_FILES["$ONFILE"]["type"];
$DstFileName = $HTTP_POST_FILES["$ONFILE"]["name"];

clearstatcache();
$time = filemtime($SrcPathFile);
$storedate = date("Y-m-d H:i:s", $time);

// File Processing
if (file_exists($SrcPathFile)) {

// Insert into file table
$SQL  = "insert into tbldocuments(Type,Description,Size,DateTime) values ('";
$SQL .= $SrcFileType . "', '" . $DstFileName . "', " . filesize($SrcPathFile);
$SQL .= ", '" . $storedate . "')";

if (!$RES = mysql_query($SQL, $linkid)) {
  die("Failure on insert to file table!");
}

$fileid = mysql_insert_id($linkid);

// Insert into the filedata table
$fp = fopen($SrcPathFile, "rb");
while (!feof($fp)) {

  // Make the data mysql insert safe
  $binarydata = addslashes(fread($fp, 65535));

  $SQL = "insert into tblDocumentChunks (documentId,chunkData) values (";
  $SQL .= $fileid . ", '" . $binarydata . "')";

  if (!mysql_query($SQL, $linkid)) {
    die("Failure to insert binary inode data row!");
  }
}

fclose($fp);
}

$STARTFILE ++;
$ONFILE = "file" . $STARTFILE;
}

echo "Upload Complete";
?>

【问题讨论】:

  • 错误是什么?什么不工作?
  • 您应该在每个块中插入一些指示其顺序的指示。但是为什么要把它分成几块呢?使用 MEDIUMBLOBLONGBLOB 数据类型分别容纳 16MiB 和 4GiB。我也不相信 PHP 会优雅地将任意二进制数据与字符串连接起来(尽管我很可能是错的)。

标签: php mysql pdf upload


【解决方案1】:

首先,$HTTP_POST_FILES 已经被弃用了一段时间。请改用$_FILES

其次,你声明了一个变量$ONFILE,但你没有在数组中引用它。

尝试删除引号($ONFILE 而不是"$ONFILE"

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2019-09-07
  • 1970-01-01
  • 2015-11-19
相关资源
最近更新 更多