• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

dateien mit Perl auf den Server laden

K

kutiku

Guest
Hallo

Ich möchte, dass meine Besucher die Möglichkeit haben, Bilder von ihrem Computer in ein bestimmtes Verzeichnis zuladen, damit sie dann auf meiner HP zusehen sind.

Hab ich mit Perl die Möglichkeit, oder muss ich eine andere Sprache verwenden? Oder ist das gar nicht möglich?
 
Jau ganz einfach...die Leute melden sich bei nem Server an und geben dir dann die Adrsse - die setzt du in deinen Quelltext, fertig.
Oder mit 'nem bestimmten Ftp-Server, da kann doch auch jeder Hochladen.

Shadow
 
missverständnis

Also, ihr kennt doch sicherlich alle diese Webbasierten eMail Service! Da kann man auch ein Dateianhängsel versenden. Das funktioniert mit "<input type=file>", und dann geht das ganze an ein perl- oder sonst irgendein Script. Aber ich denke, dass das mit Perl machbar ist, ich hab da auch schon ein bisschen rum getestet, aber das einzige, das ich mit meinem Perlscript lesen kann, ist die Adresse der Datei (z.B. G:/eigene dateien...). Also wie mach ich das!

PS: hat nix mit hacken zu tun. Unter http://www.malkusch.de (nur IE und noch nicht fertig) kannst mal bei Galerie-Bild hinzufügen nachschauen!!!
 
hi

entschuldige das ich es mir falsch ausgedrückt habe,
wolte nicht's böses ;),
werde wirklich sehr mich freuen wenn ich diese möglichkeit kennen lerne wurde, bin auch anfänger im Perl :)
 
häh...

in welchem Postkasten?
Ist ja auch Wurst...und wie spreche ich nun in Perl diese Datei an???
 
ich wollte Dir eine Mail zurück schicken, aber ich Deine Adresse nicht

Also muss ich es hier reinschreiben:
Ich weiß jetzt nicht genau, was Du mit Fenster meinst! Das einzigste, was ich da mache, was etwas illegal sein könnte ist den Werbeframe von Freedoms zuverhindern, aber das klappt auch nicht immer, meistens erst, wenn die Seite aus dem Cache kommt, und bei NS schon gar nicht, aber die NS-Seite hab ich noch gar nicht angefangen.
Oder was meinst Du mit Fenster?
 
OK...alles klar

(ich komm mir jetzt schon ein bisschen blöd vor, da ich uingef. zum 4. mal nacheinander reinschreib)

Ich hab jetzt auch den Betreff gelesen! Also wirklich freecity! Tatsächlich steht bei deren Lizenzbedingungen dabei, dass sowas verboten ist! Aber psssst!!!
Der Trick: top.location.href="was auch immer z.B. self";

Dabei musst Du aber bei freecity einstellen, das Du ein Werbeframe haben willst. Und wie bereits gesagt, das geht nicht immer! Dieses Script sollte möglichst schnell geladen werden, und zwar vor dem Werbeframe. Denn der Werbeframe erzeugt bei UnLoad das unschließbare (also nicht mit JS) Werbepopup.

OK und wie spreche ich nun meine Datei an?
 
*grins*

Hi,

meine MailAdresse stand ja da...es wird Zeit, dass Michael endlich die neue Version von diesem Board bekommt...oder ich besorg mir eine neue sinnlos Mail Adresse...wenn das die Admins hier lesen...die bringen dich um...:D ); ):.
 
:D :D :D :D :D: D Wie soll ich dir denn eine Mail schicken...solltest es mal bei dir ausprobieren, geht nicht...oder dein Profil ändern...

CU
Shadow
 
mail hin mail her...

ich weiß die Antwort nimmer mehr...

Ich frag schon seit gestern (oder voregestern) in mehreren Foren nach diesem Problem!!! Wo ist die Lösung? Es gibt zigtausende webmailseiten wo man mit Anhang senden kann, oder irgendwelche Photoalben oder sonstiges. Auf all diesen Seiten können die Besucher Sachen hochladen!!! Wieso weiß keiner wie das geht???

Also, bitte bitte BITTE B I T T E...wie geht das????
oder veratet mir wenigstens andere Foren, wo ich die Leute weiter nerven kann, was offensichtlich auch wenig Sinn hat, weil man trifft immer wieder die selben!
 
ich glaube schon...

nur ich nicht!...Aber vielleicht kannst Du mir ein kleines PHP Script schreiben, es soll nur das Bild auf dem Server speichern, ich könnt mir dann das Script vielleicht zurecht rücken. Und dieses Script wird von einem Formular angesprochen (ich hoffe Du verstehst mich)

eigentlich wäre mir Perl lieber gewesen, aber das ist besser als gar nichts!

Danke!
 
also hier kommt´s:

9.7 Wie funktioniert Datei-Upload über HTML-Formulare?
(http://www.koehntopp.de/php/faq-9.html#ss9.7)

Ein Upload-Formular muß ein Input-Element enthalten, das den Typ file hat. Da Dateien in einem Upload prinzipiell beliebig groß werden können, muß die Übermittlung des Formulares mit der Methode POST erfolgen. Außerdem muß ein bestimmter ENCTYPE für das Formular angegeben werden. Ein solches Formular kann von Netscape Navigator ab Version 3 und von Microsoft Internet Explorer ab Version 4 verarbeitet werden.



--------------------------------------------------------------------------------

<h1>Hallo</h1>
<form action="/submit.php3" method="post" enctype="multipart/form-data">
<input type="file" name="probe">
<input type="submit" value="los">
</form>


--------------------------------------------------------------------------------

Das empfangende PHP-Script bekommt das Resultat des Datei-Uploads in einer Reihe von globalen Variablen mit dem Namensprefix $probe übermittelt, weil das Input-Element im Formular diesen Namen hat.


$probe
Diese Variable enthält den Namen der Datei in einem temporären Verzeichnis auf dem Server. Sie kann von dort mit einem copy()-Aufruf abgeholt werden. Das ist auch notwendig, da die Originaldatei am Ende des Scriptes automatisch gelöscht wird.


$probe_name
Diese Variable enthält den Namen der Datei auf dem System des Anwenders. Der genaue Dateiname mit evtl. vorhandenen Laufwerksbuchstaben, Pfadseparatoren und anderen Sonderzeichen ist betriebssystemabhängig und das empfangende Script sollte keine Annahmen hierüber machen.


$probe_size
Diese Variable enthält die Länge der Datei auf dem Server in Bytes.


$probe_type
Diese Variable enthält den MIME-Type der Datei, so wie er dem Server vom Browser übermittelt worden ist.

Der Upload von Dateien wird durch die beiden Konfigurationsparameter upload_tmp_dir und upload_max_filesize in der php3.ini gesteuert. Und in Windows muß man sich in der php3.ini dringend ein gültiges upload_tmp_dir definieren, bevor das gezeigte Beispiel funktionieren kann. Des weiteren ist es unter Umständen notwendig, die Variable $probe mit der PHP-Funktion sripslashes() zu bearbeiten, bevor man auf sie mit copy() oder einem anderen Befehl zugreift. Dies liegt daran, dass Windows Pfadangaben scheinbar quotet, was der Befehl stripslashes() wieder rückgängig macht. Der Pfad zu upload_tmp_dir muß absolut angegeben werden.

PHP legt die temporäre Datei in dem angegebenen Verzeichnis an und löscht sie am Ende des Scriptes wieder. Die Datei darf maximal die angegebene Größe haben. Ein Einstellen der Größenbegrenzung begrenzt jedoch nicht wirklich den Plattenplatz, der auf dem Server von PHP durch Fileupload verbraucht wird: Aus technischen Gründen muß PHP die Datei zunächst empfangen und kann sie erst dann verwerfen, wenn sie zu groß ist. Seit PHP 3.0.10 kann mehr als eine Datei pro Formular hochgeladen werden.


Achtung:

Aufgrund eines Bugs in PHP muß das Script nach dem Upload prüfen, ob sich der/die Name(n) des Datei-Formularfeldes (im folgenden Beispiel probe) in den Hashes $HTTP_GET_VARS, $HTTP_POST_VARS oder $HTTP_COOKIE_VARS befindet. Ist dem so, muß das Script die Weiterverarbeitung (Kopieren) der - angeblich - hochgeladenen Datei(en) verweigern.

Mehr über neue Funktionen zum Upload-Handling der PHP Versionen > 3.0.16 und > 4.0.2 gibt es im Kapitel POST method uploads auf http://www.php.net.

Vollständiges Beispiel:



--------------------------------------------------------------------------------

<h1>Upload</h1>

<form
action="<?php print $PHP_SELF ?>"
method="post"
enctype="multipart/form-data">
<input type="file" name="probe">
<input type="submit" value="Los!">
</form>
<hr>
<?php
if (isset($probe)) :

// Bugfix für: http://www.securityfocus.com/archive/1/80106
if ( isset($HTTP_COOKIE_VARS["probe"]) ||
isset($HTTP_POST_VARS ["probe"]) ||
isset($HTTP_GET_VARS ["probe"])
) die("Aus Sicherheitsgründen stirbt das Script jetzt.");

copy($probe, "./newfile.txt");
printf("Die Datei %s steht jetzt als newfile.txt zur Verfügung.<br>\n",
$probe_name);
printf("Sie ist %s Bytes groß und vom Typ %s.<br>\n",
$probe_size, $probe_type);
endif;
?>
 
... wie wärs damit ...

Hy,

wie wärs mit folgendem Script ...
Es schaut, ob eine Datei übertragen worden ist, lädt diese in ein Tempverszeichnis (muß nicht mit angeben werden).
Danach kopiert das Script ( oder auch der Server :D ) die Datei in das angebene Verzeichnis.
Als Ergebnis erhält man den Dateinamen ...
Damit kann man ja noch schauen oder Nummerieren ...

#####

$copy = '/bin/cp'; # Sollte mit genannt werden
$pfad = "..."; # Der Pfad auf dem Server

if ($file != "none" && $file != "0")
{
exec("$copy $file $pfad/$file_name");
unlink($file);
$fileTemp = $file;
$file = $file_name;
}

#####

Vielleicht hilfts ...

Penny
 
Zurück
Oben