Thread Neues Board: Fileupload
(16 answers)
Opened by Heromaster at 2004-02-19 14:50
ich ueberlege mir gerade eine Vorgehensweise zum Hochladen und Attachen von Dateien an Nachrichten, und bin dabei auf folgende Vorgehensweise gekommen:
1. Auf den Seiten, wo man eine Nachricht schreiben kann, gibt es einen Button (oder Link) namens "Datei anhaengen". Wenn man auf den klickt, oeffnet sich ein neues Fenster 2. dort kann man zunaechst eine Datei angeben, und klickt auf "Hochladen" 3. Dann wird die Datei hochgeladen und auf dem Server unter folgender Nomenklatur abgelegt: $serverFile = qq~/uploads/${userId}_$count.$endung~; ($count ist ein Zaehler von 0..?, der fuer jede Datei eines Users mit derselben Endung erhoeht wird). Somit ist jeder Datei eindeutig einem User zuordenbar. Ueber Javascript wird nach erfolgreichem Upload in die Textarea fuer die Nachricht folgender Tag geschrieben: Code: (dl
)
[attach contenttype="$type" filename="$serverFile"]$originalDateiname[/attach] 4. wenn gewuenscht, kann man dann wieder ab Punkt 2 fortfahren, oder das Uploadfenster schliessen. Vorteile: x) ich koenntefuer den Upload ein externes CGI-Script verwenden koennte, und muss nicht mod_perl fuer so einen Kleinkram benuetzen und somit einen Prozess blockieren, und waehrend dem Upload koennte man schon weiter an seiner Nachricht schreiben. x) Man kann die Downloads fast beliebig in der Nachricht positionieren (ausser halt in code-Tags und aehnlichem) x) Ist ein sehr einfach zu codender Weg Nachteile: x) wenn jemand die Nachricht vor Fertigstellen des Uploades speichert, wird da nichts attached, und es bleibt eventuell eine Dateileiche zurueck, wenn man das nicht mit Javascript abfaengt x) Basiert auf Javascript, kann also ohne Javascript nicht verwendet werden x) Der User kann die Tags editieren, und dabei eventuell Schrott fabrizieren; das koennte man vielleicht so abfangen, dass jeder User nur seine eigenen Dateien attachen darf. Der User Gast darf nichts hochladen. Findest du diesen Weg gut, oder faellt dir was besseres ein?\n\n <!--EDIT|Strat|1077194279--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |