Schrift
[thread]627[/thread]

CGI Upload

Leser: 3


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
J-jayz-Z
 2005-12-14 00:10
#6300 #6300
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

ich realisiere Gerade ein upload mit CGI und will (logischerweise..) prüfen was das für eine Datei ist. Es gibt da doch ein CPAN Modul, mir fällt nur der Name nicht ein. Das prüft den Dateityp komplett ohne auf die Extension zu achten. Kann mir wer auf die Sprünge helfen?

Und nochwas. Mit $CGI::POST_MAX kann ich ja die Maximalgröße der hochzuladenden datei angeben. Allerdings wollte ich fragen, ob man diese Infos der Datei auch irgendwie bekommt, bevor diese hochgeladen wurde. Ich würde nämlich gern selbst darauf reagieren und nicht dem webserver somit ein Timeout (oder was er liefert...) überlassen sondern eine einfache schöne ausgabe machen: Diese Datei ist zu groß !

Dank euch schonmal für eure Hilfe !
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
ptk
 2005-12-14 00:54
#6301 #6301
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
File::Type, File::MimeInfo, File::MMagic, File::MimeInfo::Magic
esskar
 2005-12-14 01:51
#6302 #6302
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=J-jayz-Z,13.12.2005, 23:10]Und nochwas. Mit $CGI::POST_MAX kann ich ja die Maximalgröße der hochzuladenden datei angeben. Allerdings wollte ich fragen, ob man diese Infos der Datei auch irgendwie bekommt, bevor diese hochgeladen wurde. Ich würde nämlich gern selbst darauf reagieren und nicht dem webserver somit ein Timeout (oder was er liefert...) überlassen sondern eine einfache schöne ausgabe machen: Diese Datei ist zu groß ![/quote]
das kommt leider immer auf den server an, wann du geweckt wirst... manchmal direkt bevor alle daten schon da sind, manchmal erst, wenn die daten schon übertragen wurden ...
J-jayz-Z
 2005-12-14 07:24
#6303 #6303
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das heißt, wenn jemand mal so aus Juz ein Gigabyte übertragen will, bekommt er erst die Meldung, wenn die Daten schon hochgeladen sind ?
Und ich selbst kann da nicht drauf reagieren, ohne diese variable ?

Noch etwas: Kann ich Serverseitig irgendwie den Inhalt löschen, der via post übertragen werden soll ?
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
ptk
 2005-12-14 10:51
#6304 #6304
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
mod_perl verwenden, bei Apache::Request gibt es einen UPLOAD_HOOK.
renee
 2005-12-14 13:03
#6305 #6305
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du beim Upload in die Datei schreibst, dann kannst Du ja die Groesse der Datei auf dem Server ueberpruefen. Wenn eine bestimmte Groesse ueberschritten wird, brichst Du den Upload ab...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2005-12-14 13:05
#6306 #6306
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=renee,14.12.2005, 12:03]Wenn Du beim Upload in die Datei schreibst, dann kannst Du ja die Groesse der Datei auf dem Server ueberpruefen. Wenn eine bestimmte Groesse ueberschritten wird, brichst Du den Upload ab...[/quote]
wie gesagt, das geht nicht bei allen Servern und allen Einstellungen!
format_c
 2005-12-14 13:19
#6307 #6307
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=J-jayz-Z,14.12.2005, 06:24]Das heißt, wenn jemand mal so aus Juz ein Gigabyte übertragen will, bekommt er erst die Meldung, wenn die Daten schon hochgeladen sind ?
Und ich selbst kann da nicht drauf reagieren, ohne diese variable ?

Noch etwas: Kann ich Serverseitig irgendwie den Inhalt löschen, der via post übertragen werden soll ?[/quote]
Das kannst du in dem Formular festlegen mit
[html]
<input type="file" accept="image/jpeg" maxlength="2097152" />
[/html]

Das hindert jedoch niemanden daran das Forumular zu kopieren und zu verändern. Da die Datei vom Webserver abgefangen wird bevor es zu einem programm geht hast du die einzigste Möglichkeit wohl nur im Webserver eine Möglichkeit zu finden wie man so etwas limitiert. Ad hoc weis ich das aber jetzt nicht.

Gruß Alex
esskar
 2005-12-14 13:47
#6308 #6308
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=format_c,14.12.2005, 12:19]Das hindert jedoch niemanden daran das Forumular zu kopieren und zu verändern.[/quote]
bzw. z.B. mit LWP eine Datei hinzuposten.
format_c
 2005-12-14 14:03
#6309 #6309
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Jetzt hab ich die Direktive gefunden: http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestbody

Was auch noch eine Möglichkeit wäre mit CPAN:Apache::Request den Strom vielleicht vom Webserver zu bekommen. Müsste man mal probieren.

Gruß Alex
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2005-12-14 00:10.