wake-up-neo.com

Hochladen von Dateien über HTML-Format (mehr als 2 GB)

Gibt es überhaupt eine Datei, die mehr als 2 GB hoch ist, mit einfachem HTML-Formular-Upload? Zuvor habe ich große Dateien über Silverlight mit Chunking hochgeladen (eine große Datei in Segmente unterteilt und dann Segmente einzeln hochgeladen und dann Segmente auf dem Server wieder zusammengesetzt).

Nun müssen wir nur einfache HTML-Formular-Uploads (obwohl GWT) verwenden. Bitte leite mich, wenn es einen Weg gibt, große Dateien auf diese Weise hochzuladen.

Wenn es nicht möglich ist, einfache HTML-Dateien zu verwenden, kann mir jemand sagen, wie ich eine Datei mit Flex in Segmente teilen und hochladen kann?

34
Nadeem Ullah

Die Beschränkung der Größe von HTTP POST - Anforderungen ist normalerweise überhaupt nicht auf der HTML-Seite. Die Einschränkung ist mehr auf der Serverseite. Der Webserver muss so konfiguriert sein, dass er diese großen POST - Anforderungen akzeptiert. Der Standardwert ist normalerweise in der Regel 2 GB, und der Server gibt in der Regel einen HTTP 500-Fehler zurück. Das Standardlimit kann oft auf 4 GB erhöht werden, aber alles, was darüber hinausgeht, trifft bei 32-Bit-Systemen die Grenze. Bei 64-Bit-Systemen mit einem 64-Bit-Betriebssystem liegt die theoretische Grenze mit 16EB deutlich höher.

Wenn die Konfiguration des Webservers zur Annahme dieser großen POST - Anforderungen keine Option ist oder wenn Sie die Grenzen des Webservers überschreiten möchten, haben Sie keine andere Möglichkeit, als die Datei auf der Clientseite aufzuteilen und die Teile im Webserver neu zusammenzustellen Serverseite.

Da HTML nur eine Auszeichnungssprache ist, bietet es keine Möglichkeiten zum Teilen der Datei. Sie müssen eine normale Programmiersprache wie C # (Silverlight) oder Java (Applet) verwenden, wenn Sie eine kleine Anwendung verwenden, die Sie auf Ihrer Webseite bereitstellen. Möglicherweise ist das auch mit Flash oder Flex möglich, aber das hängt nicht von mir ab, da ich auch nicht.

Für die Übertragung von (großen) Dateien über das Netzwerk ist FTP eine viel bessere Wahl als HTTP. Ich würde die Entscheidung für HTTP noch einmal überdenken.

35
BalusC

Verwenden Sie die HTML5-Datei-API, um große Dateien hochzuladen. das hat das Konzept des Aufteilens, so dass Sie große Dateien hochladen können.

var reader= new FileReader();
reader.onload=function(e){

//do whatever you want with result
}
var blob = file.slice(startingByte, endindByte);//slicing file
reader.readAsBinaryString(blob);

FileSystem Tutorial

File API Tutorial

37
Konga Raju

wir haben eine Webapplikation (https) (mit Django/Python) erstellt, die Bulk-Dateien in die SQL Server-Datenbank lädt. Dazu lesen wir die Datei in Stücken, die über sftp an den Server übertragen wurden, und fügten Masseneinfügungen in sqlserver ein. Wir haben es für 1 GB Dateigröße verglichen und die Verarbeitung war in etwa 1 Minute beendet.

0
Sudhakar Chavan