我有一个自动PHP脚本,它连接到电子邮件框,读取电子邮件并处理它们以创建票证。其中一些电子邮件包含各种类型的文件附件。我的脚本使用下面的代码将文件直接保存到一个母线数据库中。我用的是代码点火器。
public function saveFiles($filename, $fileurl, $jobid) {
$filedata = array();
$filedata['filename']= $filename;
$filedata['filedescription'] = 'Incoming attachment.';
$filedata['fileargid'] = $jobid;
$filedata['fileaddedon'] = date('Y-m-d H:i:s P');
$filedata['filedata'] = pg_escape_bytea(base64_encode(file_get_contents($fileurl)));
$results = $this->db->insert('file', $filedata);
if ($results)
return $this->db->insert_id();
else
return FALSE;
}但是,大多数文件都是保存的,没有任何问题。我的问题是,当我部署这个脚本时,一些pdf文件会被破坏。脚本在编码到base64之前将文件保存到本地磁盘。所有这些文件都是健康的。我怀疑在pg_escape_bytea(base64_encode(file_get_contents($fileurl)))期间发生了什么事情。
我在本地PC上使用php 5.5.9/Ubuntu开发了这个脚本,其中没有文件被破坏。但是脚本部署在带有php 5.3.10的Ubuntu服务器上,文件在那里被破坏。
我试着找出是什么原因造成的,但到目前为止还没有锁定。这是因为php版本不同吗?
发布于 2016-03-21 23:11:32
看上去要么:
检查8.1节这里
如果没有问题,我会直接将bin2hex输出保存到字段中。
https://stackoverflow.com/questions/36123027
复制相似问题