Webページの実装ファイルのパッケージダウンロード

1659 ワード

Webページの実装ファイルのパッケージダウンロード
この間、ファイルを一括ダウンロードする必要がありました.最初は、ダウンロードする必要があるすべてのファイルを貼り付けボードにコピーすることで、迅雷や他のダウンロードソフトウェアを大量にダウンロードすることができますが、ユーザーのニーズを満たすことはできません.
ユーザーは、クリックするとダウンロードする必要があるすべてのファイルを1つのパッケージに圧縮してダウンロードするだけでいいことを望んでいます.これにより、機能全体を再変更する必要があります.
そこで,ユーザはダウンロードが必要なファイルを選択した後,フロントエンドからダウンロードが必要なすべての接続をバックエンドに送信し,バックエンドが要求を受信した後,すべてのファイルを圧縮して圧縮パケットを生成し,一時ディレクトリに格納した後,ディレクトリをフロントエンドに返信するとダウンロードできるようにした. 
フロントエンドはjqueryでチェックされたすべての行を取得し、選択された行に対応してダウンロードするファイル接続を取得し、1つの配列に格納します.さらにajaxで配列をバックエンドに非同期で送信します.
フロントエンドコード:
 $.ajax({
            url: "/Home/GetPackageDownLink",  //      
            data: { DownLinkList: JSON.stringify(copyConten) }, //            json  
            type: "post",
            dataType: "json",
            success: function (data) {
                if (data.code == 1) {
                    var link = document.createElement('a');//    a  ,        
                    link.href = data.message;//message           
                    var reportNo = GetSelectFirstReportNo();//        ,          
                    link.setAttribute("download", reportNo + "        ");//     
                    link.click();//    
                }
            }
        });

バックエンドキー:(ここではc#ですが、もちろん他の言語で実現できます.)
 var finalTarget = Path.Combine(targetDire, newNo + ".zip");//           
                //    
                ZipFiles(newDownLinkList, finalTarget, null);//newDownLinkList        
                result = TargetFileName;  //                

ここでもう一つ完璧ではないのは、ダウンロードしたファイル名を変更できないことです.