jq實現批量下載和打包下載


1.jq批量下載

function BatchDown(){
var mp3arr = ["http://localhost:48948/uploadfiles/0008/289a5a5d-c142-417d-9b40-0a7c8f707da2/attachmentEB519DA4D7A4C3DE556B4A01DA1008F70008.csv", "http://localhost:48948/uploadfiles/0008/289a5a5d-c142-417d-9b40-0a7c8f707da2/attachmentBCA72C7C7F10FF78AA0D9D6FEFC5A4D50008.xls", "http://localhost:48948/uploadfiles/0008/289a5a5d-c142-417d-9b40-0a7c8f707da2/attachment1893AE4D837B568079935B052BDE01DDC0008.xls"];

            for (var index = 0; index < mp3arr.length; index++) {
              download('第' + index + '個文件', mp3arr[index]);
           }

}

function download(name, href) {
       
        var a = document.createElement("a"), //創建a標簽
        e = document.createEvent("MouseEvents"); //創建鼠標事件對象
        e.initEvent("click", false, false); //初始化事件對象
        a.href = href; //設置下載地址
        alert(href);
        a.download = name; //設置下載文件名
        a.dispatchEvent(e); //給指定的元素,執行事件click事件
    } 

但批量下載方式有時候會不好使,比如說在IE8瀏覽器上,IE8只支持同時下載一個附件,這時候就需要下面的方法,打包下載

 2.打包下載

 我用的開發語言的.net,用的打包插件是ICSharpCode

具體方法就不說了,以下代碼主要是注意點的地方

 FileStream fs = System.IO.File.OpenRead(item.Key.ToString());
                        long dataLengthToRead = fs.Length;//獲取下載的文件總大小
                        const long ChunkSize = 102400;//100K 每次讀取文件,只讀取100K,這樣可以緩解服務器的壓力
                        byte[] buffer = new byte[ChunkSize];
                        ZipEntry entry = new ZipEntry(yJK.FileOriginalName);
                        entry.DateTime = (DateTime)item.Value;
                        entry.Size = fs.Length;
                        zipoutputstream.PutNextEntry(entry);
                        while (dataLengthToRead > 0)
                        {
                            int lengthRead = fs.Read(buffer, 0, Convert.ToInt32(ChunkSize));//讀取的大小
                            crc.Update(buffer, 0, lengthRead);
                            zipoutputstream.Write(buffer, 0, lengthRead);
                            dataLengthToRead = dataLengthToRead - lengthRead;
                        }
                        entry.Crc = crc.Value;
                        crc.Reset();
                        fs.Close();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM