Thread eMail-Formular mit Bild(ern) als Anhang
(18 answers)
Opened by Platten-Spieler.de at 2018-07-31 17:28
@Platten-Spieler.de
So praktisch ist das nicht wie du das alles per Hand machst, ist es nicht. Es gibt das Modul CGI, mit dem du einfacher CGI bedienen und auch Formulare mit Uploads handeln kannst. QuoteGeht über ein Formular mit drei Feldern vom Typ file. Drei Formularfelde input mit type=file. Erst eins immer anzeigen lassen und über einen Plusbutton nach Bedarf zwei hinzufügen lassen. Oder gleich alle drei Felder anzeigen. Dort kann Kunde dann über "Datei öffnen" die Datei hochladen Oder brauchst du Drag&Drop? QuoteÜber die Prüfung des Dateinamens: Im Browser Endung des Dateinamens des Feldes uploadBild per JS prüfen. Serverseitig Prüfung der hochgeladenen Datei auf korrekte Dateiendung über param('uploadBild') https://metacpan.org/pod/distribution/CGI/lib/CGI.... Serverseitig Prüfung mit File::MimeInfo::Magic auf den korrekten Mimetype image/jpeg. QuoteDurch die drei Uploadfelder im Formular ist das gewährleistet. QuoteVor dem Upload? teilweise nur mit neurem Browser, siehe http://jsbin.com/ulamor/213/edit?html,output Die Dateigröße nach Upload ist bei den temporären Dateien mit perlfunc stat bestimmbar. https://metacpan.org/pod/distribution/CGI/lib/CGI.... QuoteVor dem Upload? Schwierig. Nur über HTML5 Canvas. Dann musst du das Bilder aber trotzdem noch irgendwie noch kodderen und senden. Nach dem Upload? Ist einfacher. Mit Imager resize. Reicht das als Hintergrund? Probier doch mal und dann frage nochmals. Beispielhaft nur der Upload: Code (perl): (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 #!/usr/bin/perl use strict; use warnings; use 5.010; use CGI (); use File::MimeInfo::Magic; sub GetMimeType { my $fname = shift; my $mimetype = File::MimeInfo::Magic::mimetype($fname); return $mimetype; } my @files; my $FORM = <<HTML; <form method="POST" enctype="multipart/form-data"> <!-- hier weitere Felder --> Bild hochladen:<br> Bild 1: <input type="file" name="uploadBild"> <br> Bild 2: <input type="file" name="uploadBild"> <br> Bild 2: <input type="file" name="uploadBild"> <br> <input type="submit" value="Senden" onClick="return validate_form()"> </form> HTML my $cgi = CGI->new; print $cgi->header('text/html'); if ( $cgi->request_method() eq 'GET') { print $FORM; } elsif ( $cgi->request_method() eq 'POST') { @files = $cgi->param('uploadBild'); for my $file (@files) { print "Size: ", (stat($file))[7], " Mime-type: ", GetMimeType($file), '<br>'; } } Editiert von GwenDragon: Code für Upload Last edited: 2018-08-04 16:20:33 +0200 (CEST) |