springboot带参数的文件上传
这个工程是在内网环境进行开发,u口也被封住了,所以不能把代码拷贝出来,于是把业务部分进行脱敏处理,核心代码手写一遍如下:
一、html关键代码
<form id = "createForm" method="post" enctype="multipart/form-data">
<div class="form-group"><div class="col-xs-3">活动名称</div><div class="col-xs-7><input type="text" class="activity" id="activityName" palcegolder="请输入" /></div></div>
<div class="form-group"><div class="col-xs-3">文件上传</div><div class="col-xs-7><input type="file" class="activity" id="files" name="files" multiple="multiple"/></div></div>
</form>
<button id="activity" class="btn" type="button">确定</button>
二、js代码
$('#activity').click(function(event)){
var fd = new FormData();//如果使用var data = $('#createForm').serialize();它无法提交文件提交
for(var i = 0;i<$("#files")[0].files.length;i++){
fd.append("files",$("#files")[0].files[i]);
}
fd.append("activityName",$("#activityName").val());
//因为要符合项目整体风格,所以这里采用udesk。正常使用ajax就可以
udesk.ajax({
url:"",
method:"post",
contentType:false,
processData:false,
async:false,
data: fd
}).done(function(res,textStatus,jqXHR){
document.getElementById("createForm").reset();
$("#createForm").modal('hide');
}
}
三、Controller代码
@ResponseBody
@RequestMapping(value="/insertActivity",method=RequestMethod.POST)
public void insertActivity(HttpServletRequest request,@RequestParam(value = "activityName",required = false) String activityName){
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if(commonsMultipartResolver.isMultipart(request)){
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request;
List<MultipartFile> list = multipartHttpServletRequest.getFiles("files");
for(MultipartFile multipartFile:list){
String fileName = multipartFile.getOriginalFilename();//文件真名
String substring = fileName.substring(fileName.lastIndexOf("."));//后缀
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(new Date());
String upName = UUID.randomUUID().toString()+substring;//修改后的
String path = uploadLocation+time+"\\"+upName;
File file = new File(uploadLocation+time);
if(!file.exists()){
file.mkdirs();
}
try{
multipartFile.transferTo(new File(file,name));
} catch (IOException E){
E.printStackTrace();
}
}
}
}
springboot带参数的文件上传的更多相关文章
- servlet3.0获取参数与文件上传代码示例
转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98 package com.igeek.servlet; import ...
- springboot实现简单的文件上传
承接上一篇,这里记录一下简单的springboot文件上传的方式 首先,springboot简单文件上传不需要添加额外的jar包和配置 这里贴一下后端controller层的实现代码 补一份前台的HT ...
- springboot整合OSS实现文件上传
OSS 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.OSS可用于图片.音视频.日志等海量文件的存储.各种终端 ...
- SpringBoot整合SpringMVC完成文件上传
1.编写Controller /** * SPringBoot文件上传 */ //@Controller @RestController //表示该类下的方法的返回值会自动做json格式的转换 pub ...
- springboot(九)文件上传
在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入.下面我们来创建一个SpringBoot项目完成单个. ...
- Springboot 一行代码实现文件上传 20个平台!少写代码到极致
大家好,我是小富~ 技术交流,公众号:程序员小富 又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,d ...
- SpringBoot后台如何实现文件上传下载
1.单文件上传: @RequestMapping(value = "/upload") @ResponseBody public String upload(@RequestPar ...
- springboot+thymeleaf 实现图片文件上传及回显
1. 创建一个springboot工程, 在此就不多说了(目录结构). 2. 写一个HTML页面 <!DOCTYPE html> <html lang="en" ...
- 可拖拽和带预览图的jQuery文件上传插件ssi-uploader
插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...
- HttpClient多文件上传代码及普通参数中文乱码问题解决
该随笔记录了在实际项目中使用HttpClient调用外部api,需上传文件和普通参数的代码. 笔者在使用 HttpClient 调用 http api 接口时,需要服务端上传文件和一些普通参数给 ht ...
随机推荐
- 墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生
导读: 时序数据库(Time Series Database)在最近几年被越来越多的用户接受并使用,并有广泛的应用场景.云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首,其近期的海外发 ...
- 小程序的button组件
button组件 按钮组件 功能比html的button按钮丰富 可以通过open-type属性可以调用微信提供的各种功能(客服,转发,获取用户权限,获取用户信息等): 按钮的属性 size 按钮的大 ...
- 使用 OpenFunction 在任何基础设施上运行 Serverless 工作负载
作者: 霍秉杰:KubeSphere 可观测性.边缘计算和 Serverless 团队负责人,Fluent Operator 和 OpenFunction 项目的创始人,还是多个可观测性开源项目包括 ...
- 再见 Dockerfile,拥抱新型镜像构建技术 Buildpacks
作者:米开朗基杨,方阗 云原生正在吞并软件世界,容器改变了传统的应用开发模式,如今研发人员不仅要构建应用,还要使用 Dockerfile 来完成应用的容器化,将应用及其依赖关系打包,从而获得更可靠的产 ...
- Fluent Operator:云原生日志管理的一把瑞士军刀
作者:程德昊,Fluent Member,KubeSphere Member Fluent Operator 介绍 随着云原生技术的快速发展,技术的不断迭代,对于日志的采集.处理及转发提出了更高的要 ...
- C++ mutable与常对象语义详解
摘编自 <Effective C++> 条款三. "成员函数如果是const" 或者 "一个对象是const对象"到底意味什么?有两个流行概念:bi ...
- AI绘画漫谈——从AI网页生成说起
1. 又说"前端已死" 为什么说"又"呢?因为前两年我在一些博客网站三天两头就能看到这个标题,虽然今年好像换话题了,但感觉前端每年都要死个七八次,当然这里面还是 ...
- AOT使用经验总结
一.引言 站长接触 AOT 已有 3 个月之久,此前在<好消息:NET 9 X86 AOT的突破 - 支持老旧Win7与XP环境>一文中就有所提及.在这段时间里,站长使用 Avalonia ...
- 模态内重叠优化,简单有效的CLIP微调方法 | BMVC'24 Oral
来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: CLIP Adaptation by Intra-modal Overlap Reduction 论文地址:https://arxiv.org ...
- 想要硬件设计不用愁?首先要搞懂这三类GPIO!
合宙低功耗4G模组经典型号Air780E,支持两种软件开发方式: 一种是传统的AT指令:一种是基于模组做Open开发. 传统AT指令的开发方式,合宙模组与行业内其它模组品牌在软件上区别不大,在硬件功耗 ...