为什么在某些情况下将转换创建为文件?

时间:2014-04-03 15:14:43

标签: php imagemagick

当用户上传支持文档时,我使用php脚本将PDF文件转换为图像。它工作得很好,但偶尔会创建2个几乎相同的文件并附加" -0"和" -1"。这是一个循环,因为我的脚本不知道何时发生这种情况,然后指向错误的文件名。任何想法是什么原因以及如何纠正都将非常感激。

这是代码:

  $filename = $_FILES['file']['name'];  
  $filename1 = $upload_dir.$_FILES['file']['name'];
  rename($_FILES['file']['tmp_name'], $upload_dir.$_FILES['file']['name']);

  chmod($filename, 0777);

  //If the file is a pdf change it to a jpg.
  $file_array = explode(".", strtolower($filename));
  $file_jpg = $file_array[0];
  $file_jpg = $upload_dir.$file_jpg . ".jpg";
  $file_extn = end(explode(".", strtolower($filename)));

  if($file_extn == 'pdf'){
    $filename3 = substr($filename1, 0, -3);
    $filename3 = $filename3 . "jpg";
    $createjpgpath = $filename3;
    $basefile_jpg = substr($filename, 0, -3) . "jpg";
    exec('convert -geometry 1600x1600 -density 130x130 -quality 20 "'.$filename1.'" "'.$filename3.'"');
    unlink($filename1);

    }
  Else{
    $filename3 = $upload_dir.$_FILES['file']['name'];
    $basefile_jpg = $filename;
    }

1 个答案:

答案 0 :(得分:2)

这就是我使用的:

exec('convert "'.$targetFile.'[0]" -flatten -geometry 1600x1600 -density 130x130 -quality 20 "'.$previewTargetFile.'"');

" [0]"和" -flatten"将展平文件并仅输出一个图像。有些PDF有多页。