天天看點

導出pdf前台

//要下載下傳的
import FileSaver from "../../../node_modules/file-saver/FileSaver.js";
import ElOption from "../../../node_modules/element-ui/packages/select/src/option.vue";
export default {
    components: {ElOption, FileSaver},
}

...
var url="/api/download_file?id="
          this.$axios
              .get(url + row.id.toString(),{responseType: "arraybuffer"})
              .then(function(res) {
                  let blob = new Blob([res.data], {type: "application/pdf"});
                  let filename = "回執-" + (new Date().getTime().toString()) + ".pdf";
                  FileSaver.saveAs(blob, filename);
                  self.$message({
                      type: "success",
                      message: "下載下傳成功!"
                  });
              })
              .catch(function(err) {
                  self.$message({
                      type: "warning",
                      message: "删除失敗"
                  });
              });
           
這個是必須的預設查出來的是text類型blod也行
responseType: "arraybuffer"
pdf
new Blob([res.data], {type: "application/pdf"});
excel
new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
word(沒測)
new Blob([res.data], {type: 'application/msword;charset=utf-8'});