vue实现后端文件下载到当前浏览器

比如现在在后端生成一个.sql文件并下载到当前浏览器:比如我的后端接口是localhost:8087/user/userController/exportSql,

前端地址是localhost:9095/user#。

一、前端:

<el-button @click="getSql()">导出</el-button>
var url = process.env.BASE_API
url += '/userController/exportSql?userId=' + userId
window.open(url)

注意这里url不能是/user/userController/expoerSql,因为window.open,会把/当成前端的页面地址,而不是后端。 

二、后端:

	/**
	 * 导出SQL
	 */
    @ResponseBody
	@RequestMapping("/exportSql")
	public HttpResult exportSql(String userId,HttpServletResponse response){
		try {
			
			response.reset();
		    response.setContentType("text/plain");  
	        response.addHeader("Content-Disposition",  
	                "attachment;filename=测试user.sql");
	        BufferedOutputStream buff = null;  
	        StringBuffer write = new StringBuffer();  
	        String enter = "\r\n";  
	        ServletOutputStream outSTr = null;  
	        try {  
	            outSTr = response.getOutputStream();
	            buff = new BufferedOutputStream(outSTr);  
	            //拼接SQL
	            write.append("内容为"+userId);	      
	            buff.write(write.toString().getBytes("UTF-8"));  
	            buff.flush();  
	            buff.close();  
	        } catch (Exception e) {  
	            e.printStackTrace();  
	        } finally {  
	            try {  
	                buff.close();  
	                outSTr.close();  
	            } catch (Exception e) {  
	                e.printStackTrace();  
	            }  
	        }  
	        
			return HttpResult.getSuccessInstance();
		} catch (Exception e) {
			logger.error("导出SQL:" + e.getMessage(), e);
			return HttpResult.getFailedInstance("生成SQL失败");
		}
		
	}
}

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值