0

ユーザー入力を受け取るページを PHP で作成し、それらのパラメーターを渡した後、Perl ファイルに対して shell_exec を実行しました。

私の Perl ファイルは基本的に GD::Graph を生成します。初めてスクリプトを実行すると、問題はないようで、有効な image.gif ファイルが取得されます。ただし、もう一度実行しても、image.gif ファイルのデータは変更されません。上書きできないかのように、同じままです。

次に、シェル経由で Perl スクリプトを実行し、パラメーターを手動で渡しました。これが私が得るエラーメッセージです:

Failed to save graph to file: uploads/image.gif. Permission denied at image.pl line 178.

関連する Perl のコードは次のとおりです。

    my $bar_file = $filepath . '/image.gif';

    if (-e $bar_file) {
            #If file exists, delete
    unlink($bar_file);
    }
    else {
    print "File does not exist.";
    }

    open(IMG, ">$bar_file") 
      || die ("\nFailed to save graph to file: $bar_file. $!"); 

    binmode IMG; 
    print IMG $plot->gif(); 
    close IMG; 

問題のある行 178 は次のとおりです。

open(IMG, ">$bar_file") 

ファイルを CHMOD 777 に変更しようとしましたが、Apacheによって生成されたため、CHMODを行うための十分な権限がありません。

4

2 に答える 2

0

リンク解除に失敗したかどうかを確認できますか? 成功すると、正常に削除されたファイルの数を返します。失敗すると false を返し、$! を設定します。(エラー番号)。

于 2010-11-10T15:59:25.427 に答える
0

PHP 自体で GD フックを使用したいですか?
http://php.net/manual/en/book.image.php

于 2010-11-10T21:17:46.300 に答える