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如何实现验证码输入交互
Dec 07 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
vue postcss-px2rem 自适应布局
May 15 Vue.js
Vue router配置与使用分析讲解
Dec 24 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作的文本留言本的例子(五)
2006/10/09 PHP
php xml实例 留言本
2009/03/20 PHP
学习php分页代码实例
2013/10/24 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
点球小游戏python脚本
2018/05/22 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python实现桌面壁纸切换功能
2019/01/21 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
银行介绍信范文
2014/01/10 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
美容院经理岗位职责
2014/04/03 职场文书
五分钟演讲稿
2014/04/30 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
先进教师个人总结
2015/02/11 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
治庸问责工作总结
2015/08/11 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript