Schrift
[thread]4506[/thread]

Neues Board: Fileupload

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Heromaster
 2004-02-19 14:50
#39576 #39576
User since
2003-08-05
220 Artikel
BenutzerIn
[default_avatar]
Meine persönliche Meinung: Ein Dateiupload sollte auch ohne JavaScript funktionieren. Ob du mod_perl oder CGI zum Upload nimmst, bleibt sich gleich, da Du auch mit CGI einen Prozess blockieren würdest. Ich würde aber mod_perl bevorzugen, da dies in meinen Augen sicherer ist.
Ich würde Upload und Beitrag schreiben nicht getrennt machen, da es mit Sicherheit viel häufiger dazu führt, das der Benutzer nicht mehr daran denkt, das er etwas hochlädt und somit Fehler produziert werden.
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
Strat
 2004-02-19 16:23
#39577 #39577
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Heromaster: habe mich wohl schlecht ausgedrueckt: fuer den dateiupload verwende ich auch kein javascript, sondern pures Perl/CGI. javascript verwende ich nur fuer das einfuegen des Tags in die textarea (und optional zum schliessen des uploadfensters). wenn also jemand kein javascript aktiviert hat, muss er halt den Tag manuell rueberkopieren. Ich wuerde mir durch diese vorgehensweise sparen, dass ich immer die ganzen daten durch mehrere seiten durchschleifen muss. Und das mit dem vergessen ist da wohl kein kriterium, da die uploads nur ein paar kb gross sein werden (ich dachte an 200kB), die vielleicht sogar komprimiert abgespeichert werden, und haette den vorteil, dass man die Links zum download beliebig im text positionieren kann

@esskar: sehr gute idee; und ich sollte unbedingt noch die threadid und position mit dazu abspeichern, und kann dann eine eindeutige ID fuer die Datei vergeben
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Ishka
 2004-02-19 20:41
#39578 #39578
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
ein Vorschlag: Man kann statt filename auch filenumber verwenden, wobei dann die Zahl alleine reicht - bringt zwar nicht viel, ist aber auch nicht schwer zu implementieren
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Strat
 2004-02-20 20:53
#39579 #39579
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
so, der upload ist dank KKO fertig; jetzt muss ich nur noch den postscanner so anpassen, dass er einen Link auf die Datei setzt, und dann noch was schreiben, was die Datei zum Download anbietet...

Spinnt bei euch eigentlich der Internetexplorer auch rum, wenn man ihm einen Content-type: text/html gibt? Opera akzeptiert den problemlos...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
esskar
 2004-02-20 21:33
#39580 #39580
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hast du es mit
Content-Type: text/html
mal versucht?

ist es auch wirklich html? manchmal versucht der ie anhand der daten den content-type zu erraten!
esskar
 2004-02-21 02:32
#39581 #39581
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
kann ja nicht sein...
ich benutze nur IE und er versucht ja auch nicht das board down zu laden!
Strat
 2004-02-21 02:37
#39582 #39582
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
sorry, habe mich vertan, ich meinte text/plain, z.B,.
Code: (dl )
1
2
3
#! /usr/bin/perl
print "Content-type: text/plain\n\n";
print "$_ => $ENV{$_}\n" for keys %ENV;
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
esskar
 2004-02-21 20:08
#39583 #39583
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hier mal ein screen shot von meiner ebamil-upload-lösung
http://www.intertivity.com/share/webmail_upload.gi...

und das javascript um alles zu handeln

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
var formular = new Array();

function decode_locationsearch()
{
var url = window.location.search;

if (url != "")
{
url = url.substring(1,url.length);
liste = url.split(";");
if(liste.length == 0) { liste = url.split("&"); }
for(i = 0; i <= liste.length-1; i++)
{
temp = liste[i].split("=");

temp[0] = temp[0].replace(/\+/g, " ");
temp[1] = temp[1].replace(/\+/g, " ");
temp[0] = unescape(temp[0]);
temp[1] = unescape(temp[1]);

formular[temp[0]] = temp[1];
}
}
}

var attachwnd = 0;

function get_url()
{
var urlproto = window.location.protocol;
var urlbase = window.location.hostname;
var urlport = window.location.port;
var urlpath = window.location.pathname;
var url = urlproto + "//" + urlbase + (urlport ? ":" + urlport : "") + urlpath;

return url;
}

function attach_open(cuid)
{
decode_locationsearch();

var sid = formular["sid"];
// var cuid = formular["cuid"];

var fullurl = get_url() + "?action=mail_compose_attachments;sid=" + sid + ";cuid=" + cuid;

attachwnd = window.open(fullurl, "ModalChild", "dependent=yes,width=640px,height=480px")
attachwnd.focus();
}

function attach_keepopen()
{
if(attachwnd && !attachwnd.closed)
{
attachwnd.focus();
}
}

function attach_close()
{
window.close();
}


da ich nicht will, dass es leichen gibt und ich sicher gehen will, dass alle attachments vollständig an der mail hängen, lasse ich den user die mail nicht weiter bearbeiten; dabei hilft mirt die Function attach_keepopen(), die ich im body tag des hauptfenster bei onfocus eingebaut habe.
Strat
 2004-02-19 14:37
#39584 #39584
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
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/
esskar
 2004-02-19 15:05
#39585 #39585
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich würde zusätzlich eine neue Tabelle in der db erstellen, die zu jedem beitrag die attachment namen berreitstellt; so vermeidet man leichen und kann die attachments unabhängig von der ansicht im beitrag unterhalb des beitrags in einer liste (z.b. in eine selectbox) anbieten...
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-02-19 14:50.