Thread File Upload Datenstruktur (5 answers)
Opened by rosti at 2018-08-06 09:10

rosti
 2018-08-14 13:12
#188795 #188795
User since
2011-03-19
3507 Artikel
BenutzerIn
[Homepage]
user image
Hallo,

es ist soweit: Was lange gärt wird wut ;)

Also ichhabe die Datenstuktur so belassen. Hier

http://rolfrost.de/multipart_slice_data.html

zum Angucken. Erläuterungen schreiben ich nach der Mittagspause. Ich habe jetzt ca. 3 Jahre über einem neuen Modul als Altrnative zu CGI.pm nachgedacht, da kommt es auf eine halbe Stunde auch nicht mehr an.

PS:

Neu gegenüber CGI.pm

Ist, daß die param()-Methode Objekte bzw. Instanzen der Klasse xCGI::File liefert, was die weitere Verarbeitung hochgeladener Dateien bestimmt. Beispiel:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
# Skalarer Kontext liefert das 1. Dateiobjekt
my $file = $self->param('upspot');

# Getter-Methoden für Attribute
$file->content_type;
$file->content_length;

# Original Filename
$file->filename;

# Dateiinhalt, Overload
my $content = $file;


PS: Beispiel Hochladen mehrerer Dateien

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
use strict;
use warnings;
use IO::File;
use File::Copy;

my $control = sub{
    my $self = shift;
    if( my @files = $self->param('upspot') ){
        foreach my $f (@files){
            # Handle für die anzulegende Datei
            my $fh = IO::File->new;

            # neu mit xCGI.pm
            $fh->open("c:/temp/".$f->filename, O_CREAT|O_BINARY|O_RDWR) or die $!;
            copy( $f->iohandle, $fh ) or die $!;

            # legacy CGI.pm
            $fh->open("c:/temp/$f", O_CREAT|O_BINARY|O_RDWR) or die $!;
            copy($f, $fh) or die $!;

            $fh->close;
        }
        $self->{CONTENT} = "Alle Dateien wurden gespeichert!";
    }
    else{
        $self->{CONTENT} = "Keine Dateien, aber alles OK!";
    }
};


Denkbar einfaches Beispiel. Beschreibung auf der Webseite, s.o.


Update: Schichtenmodell eklärt, siehe Link. Und ja, das muss sein ;)


Update: Der Artikel, Link siehe oben erklärt auch, warum multipart/form-data Schrott ist und somit den Grund zur Entwicklung proprietärer Enctypes!
Last edited: 2018-08-17 07:59:10 +0200 (CEST)

View full thread File Upload Datenstruktur