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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
vue实现拖拽进度条
Mar 01 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
详解Vue的options
May 15 Vue.js
vue 实现上传组件
May 31 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 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获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
深入理解vue路由的使用
2017/03/24 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
tornado框架blog模块分析与使用
2013/11/21 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
python实现SOM算法
2018/02/23 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
django 模型字段设置默认值代码
2020/07/15 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
关于青春的演讲稿
2014/05/05 职场文书
迎七一演讲稿
2014/09/12 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
社区节水倡议书
2015/04/29 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS