2017-01-16 10 views
1

私は数日間この問題を抱えています。 私はWebサービス内の2ページのpdfを読むimagickオブジェクトを持っています。 各ページをjpgイメージとして保存しようとしています。ImagickとPHPを使用して複数のイメージを保存しようとするとサーバがダウンする

for($i = 0;$i < $num_pages; $i++){ 
    file_put_contents(logfile,"index = ".$i." \r\n\r\n",FILE_APPEND); 
    $img->setIteratorIndex($i); 
    $img->writeImage('workorders/'.$jobSFID.$i.".jpg"); 
} 

file_put_contents(logfile,"test 7 \r\n\r\n",FILE_APPEND); 

ループを削除して1ページのみを保存すると、すべてうまく行きます。 しかし、2つのページを保存するループでは、それは分解し、test 7ログステートメントに達することはなく、503 server temporarily unavailableを何度か与え、他の時間は502 proxy error reading from remote serverとなります。

+0

PHPスクリプトの最大実行時間はどのくらいですか? 1枚のjpg画像をレンダリングするのにどれくらい時間がかかりますか?スクリプトはこのタイムアウトに達し、終了します。設定によっては、記述したエラーメッセージが表示される可能性があります – sotn0r

+0

PHPエラーを有効にしましたか? 'ini_set( 'display_errors'、1);'。たぶんあなたはエラーを見て修正することができます。 – Red

+0

usleap(10)を追加しようとすると、イメージ作成に時間がかかります。 ($ i = 0; $ i <$ num_pages; $ i ++){ usleep(10); file_put_contents(ログファイル、 "index ="。$ i。 "\ r \ n \ r \ n"、FILE_APPEND); $ img-> setIteratorIndex($ i); $ img-> writeImage( 'workorders /'。$ jobSFID。$ i。 "。jpg"); } –

答えて

0

コードに別の問題がある可能性があります。エラー報告がオンになっているか、適切なログファイルを参照すると明らかになります。

「iteratorIndex」を設定すると、イメージのシーケンス内のどのイメージが現在のものであるかにかかわらず、特定のイメージを実際に分離するわけではありません。

単一の画像をImagick::getImageで区切って1ページだけを書き込むことがより確実であるはずです。

for($i = 0; $i < $num_pages; $i++){ 
    $img->setIteratorIndex($i); 
    $pageImage = $img->getImage(); 
    $pageImage->writeImage('workorders/'.$jobSFID.$i.".jpg"); 
} 
+0

あなたの提案をお寄せいただきありがとうございます...しかし、動作しませんでした..エラー表示を有効にした後、サーバー上のphp.logファイルをチェックしました...エラーのトレースがありません... –

+0

私はまた、 "Workorders"ディレクトリ...運がない –

関連する問題