画像を取り込み、それを.jpgに変換するスクリプトがあります。PHP:imagemagickは空の画像を変換で作成します
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . "/blogimages/";
$tempFile = ereg_replace("'", "_", basename($_FILES['newsImg']['name']));
$uploadFile = $uploadDir . $tempFile;
move_uploaded_file($_FILES['newsImg']['tmp_name'], $uploadFile);
$newPic = $uploadDir . $blogID . ".jpg";
if(file_exists($newPic)){
unlink($newPic);
}
$convertString = "$IM -strip $uploadFile $newPic";
echo "<!-- $convertString -->";
exec($convertString);
私が最終的な文字列をHTMLコメントに入れて、何が実行されているかを確認することができます。変換されたイメージは作成されますが、0バイトのイメージです。したがって、ファイルには実際にデータは書き込まれません。ちょうど変換が本当に正常に動作していることを確認するために、変換文字列をHTMLコメントからコマンドラインにコピーして貼り付けてください。それはPHPのexecの中で問題を抱えているようです。これがなぜ起こったのかについての考えはありますか?
$ IMとは何ですか$ _FILES ['newsImg'] ['tmp_name']でエラーチェックをしましたか? –
PHP imagick拡張機能を使用すると、エラーをデバッグするのが簡単になります(通常のPHPエラーチェッカーを使用して問題が報告されるため)、パフォーマンスが向上します(画像を変換する新しいプロセスを起動する必要がないため)。あなたの問題を直接解決するわけではありませんが、デバッグが役に立ちます。 –
私は残念なことにPHPに拡張機能を追加できません。共有ホスティングなので、php.iniにアクセスすることはできません。 – LoneWolfPR