PHP PDF使用blob数据即时压缩

时间:2012-06-28 14:00:23

标签: php pdf zip blob

我想使用下面的脚本将存储为blob数据的pdf文件添加到ZIP。

我得到两个我不理解的错误

警告:file_put_contents(ATPstatement201203.pdf)[function.file-put-contents]:无法打开流:权限被拒绝

注意:ZipArchive :: addFile()[ziparchive.addfile]:作为文件名的空字符串

我不知道我做错了什么?

$TP_Month  =''.$_POST["tp_year"].''.$_POST["tp_month"].'';
$TP_format =$TP_Month;

echo $_POST["ids"];

$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);
foreach( explode( ',', $_POST["ids"]) as $Client_ID)
{
  $sql_qry="select *
            from   ca_client_statement
            where  client_id='".$Client_ID."' and trading_period_month like '".$TP_Month."'";
  $sql_err_no=sql_select($sql_qry,$sql_res,$sql_row_count,$sql_err,$sql_uerr);

  $row = mysql_fetch_assoc($sql_res);
  $file_content = $row['pdf_statement'];
  $file_name = ''.$Client_ID.'statement'.$TP_format.'.pdf';
  $file=file_put_contents($file_name, $file_content);
  $zip->addFile($file);
}
$zip->close();

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=filename.zip');
header('Content-Length: ' . filesize($zipfilename));
readfile($zipname);

1 个答案:

答案 0 :(得分:3)

“权限被拒绝”表示Web服务器没有权限写入您尝试将文件保存到的位置。您必须从命令行使用chmod将权限更改为您尝试写入的目录(如果您使用的是Linux)。

作为错误的证据,您可以执行chmod 777 /path/to/your/save/location,但保持权限大开不是一个好主意,您应该将其重拨回644左右

你得到“空字符串作为文件名”因为file_get_contents()失败(带有上述错误),当它失败时,它返回布尔false(按照the docs }),(显然)被解释为空字符串文件名。