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的mixin策略
Nov 19 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
解读Vue组件注册方式
May 15 Vue.js
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
vue2的 router在使用过程中遇到的一些问题
Apr 13 Vue.js
vue如何清除浏览器历史栈
May 25 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 动态添加记录
2009/03/10 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
js有关元素内容操作小结
2011/12/20 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
Python爬虫教程知识点总结
2020/10/19 Python
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
团日活动总结书格式
2014/05/08 职场文书
写给女朋友的保证书
2015/05/09 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python