当前位置: 首页 > news >正文

Vue2下载二进制文件

后端:

controller:

@GetMapping(value = "/get-import-template")
	public void problemTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception {
		 iUserService.problemTemplate(request, response);
	}

service:

	void problemTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception;

impl:

@Override
	public void problemTemplate(HttpServletRequest request, HttpServletResponse response)  throws IOException {
		String path = "file/user.xlsx";
		// 从类加载器获取资源
		InputStream inputStream = getClass().getClassLoader().getResourceAsStream(path);

		// 设置响应头
		response.setContentType("application/octet-stream");
		response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("产品运输阶段导入模版.xlsx", "UTF-8"));

		// 获取ServletOutputStream
		ServletOutputStream outputStream = response.getOutputStream();

		// 使用Apache POI的XSSFWorkbook将Excel文件写入输出流
		try (XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {
			workbook.write(outputStream);
		} finally {
			// 确保输出流被关闭
			if (outputStream != null) {
				outputStream.flush();
				outputStream.close();
			}
		}
	}

前端:

html:

//批量导入
      <el-dialog :title="title" :visible.sync="importFormVisible" width="800px" :close-on-click-modal="false" :show-close="false">
      <div class="tip">
        <div class="bold">1</div>
        <span class="btitle">下载模版</span>
      </div>
      <el-row :gutter="24">
        <div class="el-upload__tip text-center">
          <span>仅允许导入 xls、xlsx 格式文件;请按照要求填写模版文件</span>
          <el-link
            :underline="false"
            style="font-size: 12px; vertical-align: baseline"
            type="primary"
            @click="importTemplate"
          >
            下载导入模板
          </el-link>
        </div>
      </el-row>
    <div style="padding: 8px 0; background: #f8fbff; margin-top: 10px">
      <div class="tip">
        <div class="bold">2</div>
        <span class="btitle">导入文件</span>
      </div>
   
    </div>
    <div style="padding: 8px 0; background: #f8fbff; margin-top: 10px">
      <div class="tip">
        <div class="bold">3</div>
        <span class="btitle">删除</span>
      </div>
      <el-row :gutter="24">
        <el-input
          v-model="importBatch"
          placeholder="请输入批次号"
          clearable
         
          class="!w-240px"
        />
        <el-button  @click="handleDelete">按批次号删除导入数据</el-button>
        </el-row>
        </div>
        <div style="text-align:center;">
          <el-button type="primary" @click="saveUser">确定</el-button>
          <el-button type="danger" @click="importFormVisible = false">取消</el-button>
        </div>
      </el-dialog>

js:

 //下载导入模板
    importTemplate(){
        importTemplate().then((res) => {
          console.log(res, 'res')
          const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  // 创建 href 超链接,点击进行下载
  window.URL = window.URL || window.webkitURL
  const href = URL.createObjectURL(blob)
  const downA = document.createElement('a')
  downA.href = href
  downA.download =  '组织架构用户导入模板.xlsx'
  downA.click()
  // 销毁超连接
  window.URL.revokeObjectURL(href)
        });
    },

实现效果:

http://www.dtcms.com/a/122762.html

相关文章:

  • 【动手学深度学习】LeNet:卷积神经网络的开山之作
  • 【面试】封装、继承、多态的具象示例 模板编程的理解与应用场景 链表适用的场景
  • 【vue】slot插槽:灵活内容分发的艺术
  • R语言——散点图
  • 第九章:可靠通信_《凤凰架构:构建可靠的大型分布式系统》
  • WHAT - React useId vs uuid
  • Pascal VOC 2012 数据集格式与文件结构
  • 前端性能优化的全方位方案【待进一步结合项目】
  • Redis 持久化+性能管理+缓存
  • XSS靶场闯关小游戏
  • 10A 大电流 DCDC 降流芯片 WD5030
  • 2025年AI开发学习路线
  • springboot集成大华人脸机
  • js实现跨域下载,展示下载进度以及自定义下载名称功能
  • Docker新型容器镜像构建技术,如何正确高效的编写Dockerfile
  • 前端三件套—CSS入门
  • 13_pandas可视化_seaborn
  • 青少年编程与数学 02-016 Python数据结构与算法 10课题、搜索
  • Webstorm 使用搜不到node_modules下的JS内容 TS项目按Ctrl无法跳转到函数实现
  • leetcode刷题日记——验证回文串
  • 算法比赛中常用的数学知识
  • C# Winform 入门(15)之制作二维码和拼接(QR)
  • miniconda安装R语言图文教程(详细步骤)
  • 13. git clone
  • Mysql | 主从复制的工作机制
  • 西电服务器环境配置问题汇总(一)
  • 【同步教程】基于Apache SeaTunnel从MySQL同步到MySQL——Demo方舟计划
  • 山东大学软件学院项目实训开发日志(7)之测试前后端本地部署
  • TCP连接四次挥手的过程,为什么是四次?
  • STM32单片机入门学习——第30节: [9-6] FlyMcu串口下载STLINK Utility