Hi!
Ich lade eine Datei mit einem HTML-Formular auf den Server an eine PHP-Script.
Jetzt will ich den Pfad der temporären Datei an ein PERL-Script übergeben.
Warum das denn? Warum nicht gleich Perl?
;-)
Weil das Script nicht nur das machen soll und ich PERL nicht gut genug kann zum einen dieses zu bewerkstelligen, und schon gar nicht den Rest den das Script noch so zu machen hat!
Wie kann PERL jetzt auf die Datei zugreifen, damit ich die Datei testweise
parsen kann? Ich starte das PERL-Script über system("perlscript.pl
$dateiname").
Nur wo ist dieser Pfad zu finden? Ich kann den in meinem Verzeichnisbaum nicht
finden. Oder muß ich die Datei dann doch irgendwo zwischenspeichern?
Du kannst ueber @ARGV auf die Kommandozeilenargumente zugreifen. Oder was meinst
du?
Das ist klar, so kann ich leicht einen Dateinamen übergeben, mache ich auch, aber das Problem ist, das ich die Datei hochlade und PHP steht die Datei meines Wissens für die Laufzeit des Scriptes in einem temporären Verzeichnis zur Verfügung und ich kann in PHP über $_FILES["filename"]["temp_name"] drauf zugreifen.
Doch bevor ich die temporäre Datei(Excel) in eine anderes Verzeichnis kopiere, will ich überprüfen, ob es sich tatsächlich um eine Excel-Datei handelt, zu dem Zweck will ich in PERL folgende Prüfung durchführen:
use Spreadsheet::ParseExcel;
my ($file) = @ARGV;
my $path = "/weiss/ich/halt/nicht/";
my $oExcel = new Spreadsheet::ParseExcel;
my $oBook = $oExcel->Parse($path.$file);
if (defined($oBook)){print "OK";}
else {print "FEHLER";}
Dieses Script rufe ich wie gesagt aus PHP über
system("script.pl $filename");
auf. Wenn die Datei normal im Filesystem erreichbar wäre, wäre es überhaupt kein Problem. Wenn ich den kompletten Pfad weiß kann ich den in PERL angeben und muß nur noch den Namen übertragen(mit @ARGV).
Aber leider komme ich nicht an den Pfad, oder kommt da PERL definitiv nicht dran, so dass ich die Datei erst in ein eigenes temporäres Verzeichnis kopieren muß und im Fehlerfall löschen? Oder am besten direkt ins endgültige Verzeichnis und ggfs. löschen würde ich sagen. Ich will halt vermeiden das man eine andere Datei als eine Excel-Datei hochladen kann!
Viele Grüße
Andreas