ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript はどのように Qiniu ファイルをパッケージ化し、圧縮 (コード) をダウンロードしますか

JavaScript はどのように Qiniu ファイルをパッケージ化し、圧縮 (コード) をダウンロードしますか

不言
不言オリジナル
2018-08-31 10:43:291696ブラウズ

この記事の内容は、JavaScript を使用して Qiniu ファイルをパッケージ化し、圧縮 (コード) をダウンロードする方法についてです。必要な方は参考にしていただければ幸いです。

要件分析: Qiniu に保存されているファイル URL に基づいて、これらのファイルをパックしてダウンロードします。

実装方法は、ファイルの内容を取得し、jszipを使用して圧縮し、最後にファイルセーバーを使用して保存およびダウンロードします。

注意すべき 2 つのポイント:

1: 一部の Web フレームワーク (laravel など) は、axios のデフォルトのリクエスト ヘッダーを構成します。ファイルをリクエストするときは、デフォルトのリクエスト ヘッダーを削除し、Content-type を「application/x-www-form-urlencoded; charset=UTF-8」に設定する必要があります。そうしないと、クロスドメインが発生します。

2: 応答タイプはバイナリであり、ファイルはバイナリで渡されるため、responseType を blob に設定します。

コード例の一部:

import JSZip from 'jszip'
import filesaver from "file-saver"
var zip = new JSZip();
// 我用的 axios 需要把这两个 header 删掉
delete window.axios.defaults.headers.common['X-Requested-With'];
delete window.axios.defaults.headers.common['X-CSRF-TOKEN'];
axios.get(file.file_url, {
    responseType: 'blob',
    headers : {
      'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
    }
  }).then(function(res){
    var response = res.data;
    zip.file(file.id + "_" + file.name, response, {binary: true});
    // do your job
  }).catch(function(error){
    console.error(error);
  });

保存:

zip.generateAsync({
  type: "blob"
}).then((blob) => {
  filesaver.saveAs(blob, this.current_zip_name)
}, (err) => {
  alert('导出失败')
});

関連推奨事項:

Qiniu mkzip 圧縮中国語のファイル名が文字化けする

Vueでファイルを一括ダウンロードしてパッケージ化する方法の例を詳しく解説

以上がJavaScript はどのように Qiniu ファイルをパッケージ化し、圧縮 (コード) をダウンロードしますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。