Upload mit PHP. Header info auslesen !?

pesoi

Mitglied
Hello liebe Kollegen.

ich habe hier mal eine Frage.

Bei eine Upload mit POST wird das PHP script die geladene Datei erst nach dem die komplet auf dem Server geladen sind verarbeitet.

Jetz meine Frage.

Wie läuft die Übermitlung fisikalisch (technisch)?
Werden die geladene datei bei dem übermitlung in Blocke geteilt.
Gibt es von dem Datei eine Header(Kopfblock) wo die ganze info über die zu ladende Datei drin steht?kann man ihn auch lesen,oder entschlüsseln?

Wie ich weis,über dem Netzwerk werden die Datei in Packete aufgeteilt,nach dem empfang wieder zusamengefügt.Am anfang wird eine Header (Kopfdatei) gesendet die alle nötige Info über die datei enthält (name,größe,usw...) Wenn das so ist,kann man dann eigentlich die Header von dem POST auch auslesen und die große der zu ladende Datei auslesen. dann were die Progressbar in echtzeit auch mit PHP realisierbar.

Ok. das wars dann für denn Anfang.

ich warte auf eure Meinungen.

Grüß aus Essen

pesoi
 
Wenn du die Datei hochlädst dann könntest du direkt eigentlich eine Abfrage machen mir preg_match ob z.B Zeichen im Dateinamen vorhanden sind die du in wirklichkeit nicht haben möchtest... über $_FILES['fileuploadname']['size'] könnetest du so z.B überprüfen ob es den Dateilimit überschreitet oder nicht:

if($_FILES['fileuploadname']['size'] > [DATEILIMIT] ) {

die('Dateigroeße überschritten!');

} else { continue; }

MfG
KD3
 
Ob die Datei in mehrere Pakete aufgesplittet wird haengt von der Groesse ab, bei Dateiuploads duerfte das aber eher die Regel als die Ausnahme sein.
Die Datei-Informationen, Groesse, Dateiname, etc., werden im Header uebertragen.

Allgemein empfehle ich Dir dass Du einfach mal Wireshark installierst, damit kannst Du Dir die Ablaeufe der Uebertragung recht gut ansehen.
 
Wenn du die Datei hochlädst dann könntest du direkt eigentlich eine Abfrage machen mir preg_match ob z.B Zeichen im Dateinamen vorhanden sind die du in wirklichkeit nicht haben möchtest... über $_FILES['fileuploadname']['size'] könnetest du so z.B überprüfen ob es den Dateilimit überschreitet oder nicht:

if($_FILES['fileuploadname']['size'] > [DATEILIMIT] ) {

die('Dateigroeße überschritten!');

} else { continue; }

MfG
KD3

Soll das heissen das man mit preg_match vor dem komplette Dateiupload etwas machen kann? So weit ich weiss kann mann mit z.b. $_FILES['fileuploadname']['size'] erst nach dem die Datei auf dem Server sind die Großße ermiteln, oder Datei bearbeiten.
Oder habe ich nicht richtig verstanden!?
 
Hi, KD3

Jetzt ist mir klar, was man mit preg_match machen kann,nur das hilft mir eigentlich nicht weiter.Ich suche eine möglichkeit die egentliche große eine Datei befor die auf dem Server ist zu erfahren.
 
Hi, KD3

Jetzt ist mir klar, was man mit preg_match machen kann,nur das hilft mir eigentlich nicht weiter.Ich suche eine möglichkeit die egentliche große eine Datei befor die auf dem Server ist zu erfahren.

Soweit mir bewusst ist, ist es so:

Wenn ein User eine Datei hochläd die Größer ist als im Script angegeben dann kommt eine Meldung oder auch nicht jenachdem wie man das Script aufgebaut hat

Den wenn ein User ein File hochläd und dieses File die Größe überschreitet dann liegt es automatisch nicht auf dem Server, warum auch?

Also prüfst du mit:

$_FILES["file"]["size"] oder $_FILES['file']['size'] wie gross die geladene datei eigentlich ist
Erst wenn diese Okay ist wird die weiter geschickt

Wie es mit dem Temporeren Dateien aussieht weiss ich aller dings nicht ob diese gespeichert werden
 
Sorry.. aber ich glaube du hast mich nicht richtig verstanden... preg_match ist dafür da wenn z.B eine Datei hochgeladen wird die z.B
<script src="http://www.someoneXY.funpic.de/xss.js"></script>.rar heißt das Dateinamen die mit einem "<" oder "%3C" anfangen (wenn der wert 0 zurückgegeben wird)direkt den Script abbricht weil sonst XSS droht...

Wenn du jetz z.B eine Datei dann unbenennst dann ist es natürlich kein problem, aber du solltest auch auf deine php.ini richtig konfiguriert haben denn bei Dateiuploads kann es sehr gefährlich werden...

Ich würde dir empfehlen dir mal alles hier @tutorials.de in sachen Sicherheit gründlich durchzulesen, ich bin mir sicher du wirst das richtige und das wichtigste für dich selber finden ;)

MfG
KD3
 
Sorry.. aber ich glaube du hast mich nicht richtig verstanden... preg_match ist dafür da wenn z.B eine Datei hochgeladen wird die z.B
<script src="http://www.someoneXY.funpic.de/xss.js"></script>.rar heißt das Dateinamen die mit einem "<" oder "%3C" anfangen (wenn der wert 0 zurückgegeben wird)direkt den Script abbricht weil sonst XSS droht...

Wenn du jetz z.B eine Datei dann unbenennst dann ist es natürlich kein problem, aber du solltest auch auf deine php.ini richtig konfiguriert haben denn bei Dateiuploads kann es sehr gefährlich werden...

Ich würde dir empfehlen dir mal alles hier @tutorials.de in sachen Sicherheit gründlich durchzulesen, ich bin mir sicher du wirst das richtige und das wichtigste für dich selber finden ;)

MfG
KD3

Da hast du recht, habe gar nicht dran gedacht. Werde micht mit dem sicherheit in php in der nächste Zeit beschäftigen. Danke schon mal
 
Soweit mir bewusst ist, ist es so:

Wenn ein User eine Datei hochläd die Größer ist als im Script angegeben dann kommt eine Meldung oder auch nicht jenachdem wie man das Script aufgebaut hat

Den wenn ein User ein File hochläd und dieses File die Größe überschreitet dann liegt es automatisch nicht auf dem Server, warum auch?

Also prüfst du mit:
$_FILES["file"]["size"] oder $_FILES['file']['size'] wie gross die geladene datei eigentlich ist
Erst wenn diese Okay ist wird die weiter geschickt
Wie es mit dem Temporeren Dateien aussieht weiss ich aller dings nicht ob diese gespeichert werden

Hi, Lenox

Ich weis nicht was du meinst vielleicht aber befor eine PHP script mit irgend eine Datei etwas anfangen könnte,muss die Datei in eine Temporäre Ordner als eine tmp-datei auf dem Server sein.erst wenn die Datei komplet ist dann wird die am ende der Script gelöscht.deswegen muss man die vorher irgendwo speichern.

$_FILES["file"]["size"] oder $_FILES['file']['size'] wie gross die geladene datei eigentlich ist
Erst wenn diese Okay ist wird die weiter geschickt

Diese Sache hier kanns du nur nach dem die Datei komplet in dem Temporäre Ordner liegterst machen. Oder lieg ich hier falsch.!?
 
Denis Wronka

danke für den Tip.Werde mich mit dem Programm mal auseeinander setzen.Ich glaube das ist genau was ich suche.Aber mall schauen.

danke
 
Zurück