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

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

3b7b3c0f55a1b898a1e22081da9c0a04.png

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

8f5a18c3264c82e39353692380c2cf45.png

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

首先是后台代码

46f9b13421f9f2ab8fa9c2a9fde74474.png

/**     * 附件下载     *      *     * @param param     * @return ResponseDTO     */    @PostMapping(value = "/download")    public void downloadFile(@RequestParam Map 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代码

4264832bd5a58cd435f206143c86ecf6.png

 //下载和预览      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欢迎大佬指点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器、通用定时器和高级定时器。它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些&#xff0c…

第十九讲:职责链模式

public class CarBodyHandler extends CarHandler{Overridepublic void HandlerCar() {// TODO Auto-generated method stubSystem.out.println("组装车身");}} public abstract class CarHandler {public abstract void HandlerCar(); } public class CarHeadHandle…

四阶行列式直接展开_四阶行列式的完全展开式共有多少项

展开全部 共24项。 1.将该行列式前三列重复书写在该行列式的右边,可在前四列中作出两条对角线,然e5a48de588b662616964757a686964616f31333365663463后在此七列中作出相应的平行线,可得(图表一) 2.作乘积关系,可得如下八项: a11a22a33a44,a12a23a34a41,a13a24a31a42,a14a2…

c++ 返回智能指针_C++核心指南(17) I.11 禁止使用指针(T*)或引用(T)来转移所有权...

I.11: 永远不要使用原始指针(T*)或引用(T&)来转移所有权原因如果对调用者或被调用者是否拥有对象有任何疑问,就会发生泄漏或过早析构。示例考虑:X* compute(args) // 不要这样做 { X* res new X{}; // ... return res; }谁来删除返回的X?当compute返…

mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...

mysql是一款数据库管理系统,mysql一般网站开发者或者数据库开发者会用到,mysql拥有体积小巧、读取和存储速度快的特点,新版本完全脱了MylSAM存储引擎,改善了扫描性能,同时还重构了sql分析器,赶快下载使用吧…

手游产品经理初探(三)产品中的玩家行为

国内做手游的团队非常多都是一大抄,但非常多时候我们都没有抄到核心的东西,所谓的形象神不象就是这样。那么我们来看一个案例:这个界面是big fish做的玩家送礼物的画面。我们知道在社交类的游戏里面这是一个非经常见的功能,但非常…

mysql ndb是什么_MySQL NDB Cluster介绍

最近翻译了好几篇关于NDB的文章,相信有很多人会有疑问,NDB Cluster究竟是个什么东西?它是一款新产品吗?它和InnoDB Cluster有什么不同?它是MySQL吗?它怎么使用?在这篇文章里,我将为大…

orm和mysql_orm与mysql

一. orm执行原生sql语句在模型查询API不够用的情况下,我们还可以使用原始的SQL语句进行查询。Django 提供两种方法使用原始SQL进行查询:一种是使用raw()方法,进行原始SQL查询并返回模型实例;另一种是完全避开模型层,直…

课程作业2

作业二 题目 编写一个程序,要求根据给定的圆的半径求圆的面积,并将求得的结果打印出来。 要求: 输入输出采用cin和cout。 建立一个工程,将程序写成两个.cpp和一个.h的形式。 要求程序必须要对变量的定义和各个函数模块进行注释。 …

webform中提交按钮同时执行更新和插入操作_软件测试中的功能测试点(三)

26.输入法半角全角检查再输入信息中,输入一个或连串空格,查看系统如何处理,如对于要求输入符点型数据的项中,输入全角的小数点(“。”或“.”,如4.5);输入全角的空格等。 27.密码检查…

PAT甲题题解-1091. Acute Stroke (30)-BFS

题意:给定三维数组,0表示正常,1表示有肿瘤块,肿瘤块的区域>t才算是肿瘤,求所有肿瘤块的体积和 这道题一开始就想到了dfs或者bfs,但当时看数据量挺大的,以为会导致栈溢出,所以并没…

python如何获取请求的url_听说你在学习:如何通过代码请求URL地址

最近比较忙碌,都没有时间更新公众号文章,表示比较惭愧。最近翻看了一下自己的博客,发现这篇文章的内容还是挺实用,所以,想分享给大家,欢迎阅读。在后续,我会从一个范围的角度进行编写一系列文章…

在sql中将表建在别的构件中用什么语句_SQL实战

学习主题:SQL学习目标:1 掌握子查询1. 什么是子查询(1) 什么是子查询?答:当一个查询是另一个查询的条件时,称之为子查询。简而言之:嵌套查询(2) 子查询执行的顺序是什么?答:先进行内…

数据结构入门之链表(C语言实现)

这篇文章主要是根据《数据结构与算法分析--C语言描述》一书的链表章节内容所写,该书作者给出了链表ADT的一些方法,但是并没有给出所有方法的实现。在学习的过程中将练习的代码记录在文章中,并添加了一些在测试中需要的函数,因此可…

php 验证码需开启gd2

转载于:https://www.cnblogs.com/zhangj391/p/6794555.html

python中如何将字典直接变成二维数组_python基础知识(列表、字典、二维数组)...

记得改参数!!!(1)简述列表(list)结构的特点。List(列表)List的元素以线性方式存储,可以存放重复对象,List主要有以下两个实现类:ArrayList : 长度可变的数组,可以对元素进行随机的访问&#xff…

mysql动态代理_超全MyBatis动态代理详解(绝对干货)

前言假如有人问你这么几个问题,看能不能答上来Mybatis Mapper 接口没有实现类,怎么实现的动态代理JDK 动态代理为什么不能对类进行代理(充话费送的问题)抽象类可不可以进行 JDK 动态代理(附加问题)答不上来的铁汁,证明 Proxy、Mybatis 源码还…

python pygame鼠标点击_Python中pygame的mouse鼠标事件用法实例

本文实例讲述了Python中pygame的mouse鼠标事件用法。分享给大家供大家参考,具体如下:pygame.mouse提供了一些方法获取鼠标设备当前的状态pygame.mouse.get_pressed - get the state of the mouse buttons get the state of the mouse buttonspygame.mous…

java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现

观察者(Observer)模式定义:在对象之间定义了一对多的依赖关系,这样一来。当一个对象改变状态时,依赖它的对象都会收到通知并自己主动跟新。Java已经提供了对观察者Observer模式的默认实现,Java对观察者模式的支持主要体如今Observ…

php多条件查询

需要查询的表格 代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <…