application / octet-stream JPG使用Imagick进行PDF图像转换失败?

时间:2015-07-13 19:09:26

标签: php pdf jpeg imagick

我有一个网络应用程序,用于上传多个JPG,PNG和PDF。它已经工作了一段时间,但是用户偶尔会上传我的代码不喜欢的文件,现在就是这种情况。此特定文件的mime类型为application/octet-stream

用户上传完所有文件后,我的应用会使用Imagick将所有文件转换为PDF。我的代码返回true并且没有错误:

    $image = $this->unconvertedImagesDir . $this->userID .  "_" . $uploadNum . ".jpg";
    $imageMagick = new Imagick($image);
    //shrink file size:
    $imageMagick->resizeImage(700, 0, null, TRUE);

    $convert = $imageMagick->setimageformat('pdf');

    if($convert)
    {
        $moveFile = file_put_contents($this->PDFsDir . $this->userID . "_" . $uploadNum . ".pdf", $imageMagick);
        return true;
    }
    else
    {
        return false;
    }

但是,当我尝试打开新转换的PDF时,Acrobat会给我这样的信息:

An error exists on this page. Acrobat may not display the page correctly. Please contact the person who created the PDF document to correct the problem.

然后该文件只是空白。

有谁知道为什么Imagick弄乱了这个PDF转换?

更新:昨天mimeType显示为application/octet-stream,但现在显示为image/jpeg。我还能够在运行ImageMagick 6.6.8-7和PHP 5.4的Vagrant机器上成功转换图像,但问题仍然存在于运行ImageMagick 6.4.3和PHP 5.3的Staging and Production服务器上。

0 个答案:

没有答案