<!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル>ドキュメント</ タイトル> </ ヘッド> < 身体> <! - 2.创建页面元素- > < DIV ID = "アップロード" > < 入力のid = "ファイル" タイプ= "ファイル" 名= "ファイル" /> <タイプ= "ボタン" >提交2 </ ボタン> </ divの> < スクリプトタイプ= "テキスト/ javascriptの" SRC = "JS / jqueryの-3.4.1.min.js" > </ スクリプト> < スクリプトタイプ=」テキスト/ javascriptの」SRC = "JS / jqueryの-form.js" > </ スクリプト> < スクリプトタイプ= "テキスト/ javascriptの" > $(関数(){ $(" #btnButton " )。(クリック機能を(){ のsendRequestを(); 戻り falseに; }); }) VaRのBYTES_PER_CHUNK = 1。 * 1024 * 1024 ; // 各スライスファイルサイズに対して1メガバイトとして。 VaRのスライス、 VaRのtotalSlices; // 要求送信 機能のsendRequestを(){ VARのBLOBは= のdocument.getElementById(" ファイル" ).files [ 0 ]; VAR スタート= 0 ; VARの終了; VaRのインデックス= 0 ; // 计算文件切片总数 スライス= Math.ceil(blob.size / BYTES_PER_CHUNK)。 totalSlices = スライス。 しながら(開始< blob.size){ 端は= 起動+ BYTES_PER_CHUNKと、 もし(エンド> blob.size){ 端= blob.size。 } uploadFile(BLOB、インデックス、開始、終了)。 開始= 終了し; インデックス++ ; もし(指数> = totalSlices) 位置= " reboot.htm " 。 } } // 上传文件 関数uploadFile(BLOB、インデックス、開始、終了){ VARのXHR。 VAR FD; VaRの塊。 VAR sliceIndex = blob.name + インデックス。 チャンク= blob.slice(開始、終了)。// 切割文件 FD = 新いるFormData(); fd.append(" UpgradeFileName " 、チャンク、sliceIndex); VARのXHR = 新新のXMLHttpRequest(); xhr.open(' POST ' 、' http://192.168.10.134:8080/Training/UploadVideo ' 、falseに); // 偽は、私の小さなサーバのメモリ、選択同期するので、同期アップロードを指し、スピードの追求場合、あなたは//トゥーレ、非同期アップロードを選択することができ xhr.send(FD)を、 IF ((xhr.status > = 200 && xhr.status < 300 )|| xhr.statusの== 304 ){ setTimeout("" 、10 ); } 他{ uploadFile(BLOB、インデックス、開始、終了)。 } } </ スクリプト> </ ボディ> </ HTML >
/// <要約> /// ファイルマージ /// </要約> /// <PARAM NAME = "ファイル"> ファイル</ param>の /// <PARAM NAME = "のfullName"> ストレージ・パス</ param>の 公共の 静的な 無効 FileMerge(リスト< 文字列 >ファイル、文字列のfullName) { IF((files.Count>!0 )) { スロー 新しい新しい例外(" ファイルリストが空です" ); } foreachの(文字列項目でファイル) { もし(!File.Exists(アイテム)) { スロー 新しい例外を(文字列 .Format(" 文件{0}不存在" 、アイテム)); } } バイト []バッファ= 新しい バイト [ 1024 * 100 ]。 使用(FileStreamをOUTSTREAM = 新規のFileStream(のfullName、FileMode.Create)) { int型 readedLen = 0 。 FileStreamをsrcStream = nullを。 以下のための(int型私= 0 ; 私はfiles.Countを<; 私は++ ) { srcStream = 新規のFileStream(ファイル[I]、FileMode.Open)。 一方、((readedLen = srcStream.Read(バッファ、0、buffer.Length))> 0 ) { outStream.Write(バッファ、0 、readedLen)。 } srcStream.Close()。 } } }