Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法


Posted in Vue.js onDecember 25, 2020

我测试过很多遍,想要通过a标签的形式来直接点击url下载文件并重命名但是都失败了,最终只能下载却不能重命名 所以 换了java后台来修改名字.以下代码

Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法

我做的网页是点击文件直接下载

Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法

直接下载下来了,一开始的文件名是上传到oss时以id命名的名字,现在下载的时候想改名,遇到了问题,所以写了这篇博客

首先是后台代码

Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法

/**
  * 附件下载
  * <p>
  *
  * @param param
  * @return ResponseDTO
  */
 @PostMapping(value = "/download")
 public void downloadFile(@RequestParam Map<String, Object> param, HttpServletResponse response) throws Exception {
  String url1 = param.get("url").toString();
  URL url = new URL(url1);
  URLConnection conn = url.openConnection();
  InputStream inputStream = conn.getInputStream();
  response.reset();
  response.setContentType(conn.getContentType());
   //纯下载方式 文件名应该编码成UTF-8
  response.setHeader("Content-Disposition",
    "attachment; filename=" + URLEncoder.encode(param.get("name").toString(), "UTF-8"));
  byte[] buffer = new byte[1024];
  int len;
  OutputStream outputStream = response.getOutputStream();
  while ((len = inputStream.read(buffer)) > 0) {
   outputStream.write(buffer, 0, len);
  }
  inputStream.close();
 }

代码里面的 url 需要事先 去阿里云获取,我因为前端上传的时候 获取到了url就直接传到后台用了.

前端vue代码

Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法

//下载和预览
  handlePreview(file) {
  if (file.type == 'png' || file.type == 'jpg') {
   this.imageUrl = file.url;
   this.imageDetail = true;
  } else {
   var form = document.createElement("form");
   document.body.appendChild(form);
   form.method = "post";
   form.appendChild(this.generateHideElement('url',file.url));
   form.appendChild(this.generateHideElement('name',file.name));
   form.action = "接口地址"// 路由地址+接口地址
   form.submit();
  }
  },
  generateHideElement(name, value) {
  var tempInput = document.createElement("input");
  tempInput.type = "hidden";
  tempInput.name = name;
  tempInput.value = value;
  return tempInput;
  },

好了这就完了,很简单的一段代码, 我也是刚学vue欢迎大佬指点

到此这篇关于Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法的文章就介绍到这了,更多相关vue 阿里云oss下载文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue打开其他项目页面并传入数据详解
Nov 25 Vue.js
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 Vue.js
Vue操作Storage本地化存储
Apr 29 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue使用require.context实现动态注册路由
Dec 25 #Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 #Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 #Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 #Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 #Vue.js
vue3使用vue-count-to组件的实现
Dec 25 #Vue.js
vue+openlayers绘制省市边界线
Dec 24 #Vue.js
You might like
PHP计算加权平均数的方法
2015/07/16 PHP
php生成二维码
2015/08/10 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
篮球比赛策划方案
2014/06/05 职场文书
PHP新手指南
2021/04/01 PHP
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android