>웹 프론트엔드 >JS 튜토리얼 >Qiniu 파일을 패키지하고 javascript(코드)로 압축을 다운로드하는 방법

Qiniu 파일을 패키지하고 javascript(코드)로 압축을 다운로드하는 방법

不言
不言원래의
2018-08-31 10:43:291748검색

이 글의 내용은 자바스크립트를 사용하여 Qiniu 파일을 패키지하고 압축(코드)을 다운로드하는 방법에 대한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

요구 사항 분석: Qiniu에 저장된 파일 URL을 기반으로 이러한 파일을 압축하고 다운로드합니다.

구현 방법은 파일 콘텐츠를 얻고 jszip을 사용하여 압축한 다음 마지막으로 파일 저장기를 사용하여 저장하고 다운로드하는 것입니다.

두 가지 참고 사항:

1: 일부 웹 프레임워크(예: 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에서 패키징하는 방법에 대한 자세한 설명 예시

위 내용은 Qiniu 파일을 패키지하고 javascript(코드)로 압축을 다운로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.