J'ai écrit une page en PHP qui prend l'entrée d'utilisateur, puis je fais un shell_exec à un fichier Perl après avoir passé ces paramètres.Impression dans un fichier .gif à l'aide de GD :: Graph. Autorisation refusée lors de l'écriture de déposer
Mon fichier Perl génère essentiellement un GD :: Graph . Quand je lance le script pour la première fois, il ne semble pas y avoir de problème et j'obtiens un fichier image.gif valide. Cependant, l'exécuter une seconde fois ne modifie aucune donnée du fichier image.gif. Il reste le même, comme s'il ne pouvait pas être écrasé. J'ai ensuite exécuté le script Perl via Shell et transmis les paramètres manuellement. Voici le message d'erreur que je reçois:
Failed to save graph to file: uploads/image.gif. Permission denied at image.pl line 178.
Le code correspondant en Perl est:
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;
Et la ligne problématique 178 est:
open(IMG, ">$bar_file")
J'ai essayé de modifier le fichier chmod 777, mais depuis son généré par Apache, je n'ai pas les autorisations suffisantes à CHMOD.
Salut Freek: Le problème était avec les autorisations du fichier .gif. Ce que j'ai fait quand je l'ai créé, je CHMOD est à 775 dans Perl, de cette façon il permet de réécrire. Merci de repoler si .. – c0d3rs