In einem Formular kann der Anwender eine Datei wählen, die auf seinem lokalen Rechner liegt. Diese Datei wird beim Absenden des Formulars vom CGI in dem Verzeichnis (oder in einem Unterverzeichnis) gespeichert, in dem das CGI liegt. Wie kann ich das mit Perl realisieren?
Du möchtest also wirklich jemandem erlauben, ein Skript dorthin zu laden, bei dessen Ausführung das Uploadskript selbst gelöscht und die gesamte Dienstleistung damit deaktiviert wird? Schöne Idee ...
Aber im Prinzip brauchst Du nur ein ganz normales Upload-Skript von der Stange, dort Dein CGI-Verzeichnis als Ziel angeben, und ggf. das x-Bit für die hochgeladene Datei setzen.
Es gibt halt einen Haufen Sekundärprobleme. Beispielsweise: Was tun, wenn eine Datei unter diesem Namen bereits existiert (z. B. das Upload-Skript selbst)?
Die gleiche Geschichte soll auch funktionieren, wenn die Datei von einem FTP-Server geholt werden soll (wenn der Anwender in das Eingabefeld eine URL einträgt).
Dafür müßtest Du in Deinem Skript die entsprechende FTP-Kommunkation programmieren (ggf. inklusive Benutzerkennung und Passwort für den FTP-Server, also zwei weitere Eingabefelder).
In der History dieses Forums habe ich nichts brauchbares gefunden. In einem Buch von O'Reilly steht was von dem Perl-Modul "Net::FTP" - funktioniert aber nicht!!
Kristallkugel, wo bist Du?
Ist sowas überhaupt mit Perl möglich?
Alles ist mit Perl möglich, was nicht an Sicherheitsmechanismen des Servers scheitert. ;-)
Ich möchte dafür übrigens keine vorgefertigten Module verwenden, sofern das möglich ist...
... sondern lieber die Entwicklung dieser Module selbst nochmal vornehmen? Dann hole Dir diese Module aus CPAN, lies den Quelltext und lerne daraus ...