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中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
vue使用echarts实现折线图
Mar 21 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
收音机指标测试方法及仪器
2021/03/01 无线电
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
python查找指定具有相同内容文件的方法
2015/06/28 Python
python基础知识小结之集合
2015/11/25 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
jupyter notebook 重装教程
2020/04/16 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
企业业务员岗位职责
2014/03/14 职场文书
学校后勤工作总结2015
2015/05/15 职场文书