ファイルアップロードサイズの大きいファイルのJS実装のスライス、アップロードの大きなスライスを達成するためのJS方法

大きなファイルのアップロードスライスを達成するための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>
コードをコピー

 

おすすめ

転載: www.cnblogs.com/yuanjiangw/p/12000206.html