大きなファイルのアップロードスライスを達成するためのJS方法
オブジェクトによってJS Blobオブジェクトは、特定の用途いるFormDataブロブに、次のアドレスには見ることができ、ファイルアップロード機能のいるFormData大部分を達成することができる
いるFormDataオブジェクト使用
Blobオブジェクトを使用して、
本実施形態では、次のコードが実装されているコードの後端達成するためにPHPを使用して、いくつかのファイルを無視するように、特定の検証ロジックの基本的な機能を実証することです。
コードの前に:
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <メタ文字コード= "UTF-8"> <タイトル>アップロード</ TITLE> <スクリプトSRC = "https://cdn.bootcss.com/jquery /3.2.1/jquery.min.js "> </ SCRIPT> </ HEAD> <BODY> の<input type ="ファイル」名= "ファイル" ID = "ファイル"> <ボタンID = "アップロード"のonClick = "アップロード()">アップロード</ボタン> ます。<script type = "text / javascriptの"> * 1024 VAR bytesPerPiece = 1024; //每个文件切片大小定为1メガバイト VaRのtotalPieces。 //发送请求 機能アップロード(){ VARブロブ=ドキュメント。getElementByIdを( "ファイル")のファイル[0]。 VAR開始= 0; VaRの終わり。 VAR指数= 0; VARファイルサイズ= blob.size。 VARファイル名= blob.name。 //计算文件切片总数 totalPieces = Math.ceil(ファイルサイズ/ bytesPerPiece)。 一方、{(ファイルサイズ<開始) 端= + bytesPerPieceを開始します。 IF(エンド>ファイルサイズ){ 端=ファイルサイズ。 } VARチャンク= blob.slice(開始、終了); //切割文件 VAR sliceIndex = blob.name +指数; VAR FORMDATA =新しいいるFormData(); formData.append( "ファイル"、チャンク、ファイル名); $アヤックス({ URL: 'のhttp:// localhostを:9999 / test.phpを' タイプ: 'POST'、 キャッシュ:偽、 データ:FORMDATA、 PROCESSDATA:偽 のcontentType:偽 })行わ(関数(RES){。 })(関数(RES)を失敗{。 })。 開始=終了。 インデックス++; } } </ SCRIPT> </ body> </ HTML>