vue文件上传和下载_vue上传文件组件

vue文件上传和下载_vue上传文件组件Controller层上传@RequestMapping(“/uplaod”)@ResponseBodypublicRespBeanadd(@RequestParam(“file”)MultipartFilefile){//TODO处理上传的数据StringfileName=file.getOriginalFilename();StringcontentType=file.getContentType();lon

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

文件上传content-type:multipart/form-data

Vue端

多文件上传

let files = new FormData()
for (let i in this.fileList) { 
   
    files.append('files', this.fileList[i].raw)
}

下载

window.open(this.BASE_URL + '/download/' + id)

Controller层

上传

    @RequestMapping("/uplaod")
    @ResponseBody
    public RespBean add(@RequestParam("file") MultipartFile file) { 
   
    //TODO 处理上传的数据
    String fileName = file.getOriginalFilename();
    String contentType = file.getContentType();
    long size = file.getSize();
    
    }

下载

    @GetMapping("/download/{id}")
    @ResponseBody
    public void show(@PathVariable("id") String id, HttpServletResponse response) { 
   
        //TODO 获取需要下载的数据
        String contentType = null;
        String fileName = null;
        byte[] data = null;
        
        try { 
   
            response.setCharacterEncoding("UTF-8");
            response.setHeader("content-type", contentType + "; charset=utf-8");
            response.setContentType(contentType + ";charset=utf-8");
            response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
            response.getOutputStream().write(data);
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (Exception e) { 
   
            e.printStackTrace();
        }
    }

获取resources目录下文件,部署可用。

@Autowired
ResourceLoader resourceLoader;

File file = resourceLoader.getResource("classpath:apk/ai.apk").getFile();

常见content-type

.apk:application/vnd.android.package-archive
.jpg:image/jpeg
.zip:application/zip
.docx:application/vnd.openxmlformats-officedocument.wordprocessingml.document
.mp4:video/mp4
.pdf:application/pdf
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170641.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 几种常见GC算法介绍「建议收藏」

    几种常见GC算法介绍「建议收藏」本文主要是对常用的GC算法(引用计数法、标记-清除法、复制算法、标记-清除算法)作出相关的说明,并对相关知识做简单的介绍。一、什么是堆?    堆指用于动态(即执行程序时)存放对象的内存空间。而这个对象,在面向对象的编程中,它指“具有属性和行为的事物”,然而在GC的世界中,对象表示的是“通过应用程序利用的数据的集合”。具体到Java堆,它是所有线程共享的一块内存区域,在虚拟机启动时创…

    2022年6月16日
    28
  • IntelliJ IDEA报错:Error:(1, 1) java: 非法字符: ‘\ufeff'[通俗易懂]

    IntelliJ IDEA报错:Error:(1, 1) java: 非法字符: ‘\ufeff'[通俗易懂]当我把Eclipse中的类拷贝到idea项目中,就出现了这个错误。查找资料得知:Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,但使用IDEA编译UTF-8+BOM编码的文件时会出现这个错误:Error:(1, 1) java: 非法字符: ‘\ufeff’。关于UTF-8+BOM 参考 https://www.zhihu.com/question/20167122/an…

    2022年6月13日
    114
  • MySQL Server 5.0 下载与 安装指南[图文] (安装到非系统路径+设置root账号相应password)

    MySQL Server 5.0 下载与 安装指南[图文] (安装到非系统路径+设置root账号相应password)

    2021年12月3日
    56
  • idea 替换_idea全局搜索快捷键

    idea 替换_idea全局搜索快捷键idea替换功能说明快捷键:ctrl+R界面说明

    2022年9月29日
    4
  • vs2019键盘钩子_低级键盘钩子回调函数「建议收藏」

    vs2019键盘钩子_低级键盘钩子回调函数「建议收藏」与SetWindowsHookEx函数一起使用的应用程序定义的或库定义的回调函数。每当一个新的键盘输入事件即将被提交到线程输入队列中时,系统都会调用这个函数。当调用此回调函数以响应键状态的更改时,将在更新键的异步状态之前调用回调函数。因此,不能通过在回调函数中调用GetAsyncKeyState来确定键的异步状态。HOOKPROC类型定义了指向这个回调函数的指针。LowLevelKeyboard…

    2022年6月1日
    54
  • Python实现web聊天室「建议收藏」

    Python实现web聊天室「建议收藏」使用Python模块中的select模块实现web聊天室功能select模块Python中的select模块专注于I/O多路复用,提供了selectpollepoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue方法(freeBSD系统)参数:可接受四个参数(前三个必须)r…

    2022年6月22日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号