Печать в файл .gif с использованием GD :: Graph. Отказано в доступе при записи в файл - PullRequest
0 голосов
/ 10 ноября 2010

Я написал страницу на PHP, которая принимает пользовательский ввод, а затем я передаю shell_exec в файл Perl после передачи этих параметров.

Мой 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.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

Конечно, вы хотите использовать GD-хуки в самом PHP?
http://php.net/manual/en/book.image.php

0 голосов
/ 10 ноября 2010

Можете ли вы проверить, не удалось ли отменить связь?В случае успеха возвращается количество успешно удаленных файлов.При неудаче возвращает false и устанавливает $!(Ошибка).

...