SSM框架实现多张图片和其他数据一起上传
一、SSM+Form 多张图片和其他数据一起上传,
1、导包:
commons-fileupload-1.3.3.jar
commons-io-2.4.jar
2、springmvc.xml 文件配置
<!--文件上传,id必须设置为multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置上传大小 单位:B-->
<property name="maxUploadSize" value="10240000"></property>
</bean>
3、后端设置
@RequestMapping(value = "/upload.do")
public String updateItem(MultipartFile[] pictureFile,User user,HttpServletRequest request) throws IOException {
//图片上传 //设置图片名称,名称不能重复,可以使用uuid
String picName = UUID.randomUUID().toString().replace("-","");
System.out.println("传入图片的数量:"+pictureFile.length);
System.out.println("传入其他的参数或者实体:"+user);
//获取文件名
String oriName = pictureFile[0].getOriginalFilename();
System.out.println("获取文件名 "+oriName);
//获取图片后缀
String extName = oriName.substring(oriName.lastIndexOf("."));
System.out.println("获取图片后缀"+extName);
String path = request.getSession().getServletContext().getRealPath("image");
System.out.println("图片路径"+path);
File dir = new File(path,picName+extName);
if(!dir.exists()){
dir.mkdirs();
}
//开始上传
pictureFile[0].transferTo(dir);
return "forward:/index.html";
}
4、前端页面配置
<form enctype="multipart/form-data" method="post" action="upload.action">
文件:<input type="file" name="pictureFile" multiple/>
姓名:<input type="text" name="username"/>
密码:<input type="text" name="password">
<input type="submit" value="上传"/>
</form>
二、SSM+AJAX 多张图片和其他数据一起上传,总共四个步骤:
1、导包:
同上。
2、springmvc.xml 文件配置
同上。
3、controller 后台设置
@RequestMapping(value = "/upload.do")
public String updateItem(@RequestParam("pictureFile") MultipartFile[] pictureFile,User user,HttpServletRequest request) throws IOException {
//图片上传 //设置图片名称,名称不能重复,可以使用uuid
String picName = UUID.randomUUID().toString().replace("-","");
System.out.println("传入图片的数量:"+pictureFile.length);
System.out.println("传入其他的参数或者实体:"+user);
//获取文件名
String oriName = pictureFile[0].getOriginalFilename();
System.out.println("获取文件名 "+oriName);
//获取图片后缀
String extName = oriName.substring(oriName.lastIndexOf("."));
System.out.println("获取图片后缀"+extName);
String path = request.getSession().getServletContext().getRealPath("image");
System.out.println("图片路径"+path);
File dir = new File(path,picName+extName);
if(!dir.exists()){
dir.mkdirs();
}
//开始上传
pictureFile[0].transferTo(dir);
return "forward:/index.html";
}
4、前端页面配置:
文件:<input type="file" name="pictureFile" multiple/>
姓名:<input type="text" name="username"/>
密码:<input type="text" name="password">
<input type="submit" value="上传" onclick="shangchuan()"/>
js部分
<script type="text/javascript">
function shangchuan() {
var username = document.getElementsByName("username")[0].value;
var password = document.getElementsByName("password")[0].value;
var filesl = document.getElementsByName("pictureFile")[0].files;
var files = document.getElementsByName("pictureFile")[0];
var formData = new FormData();
for(var i=0;i < filesl.length;i++){
formData.append("pictureFile",files.files[i]);
}
formData.append("username", username);
formData.append("password", password);
console.log(formData)
$.ajax({
url:"upload.action",
type:"post",
data:formData,
dataType:"json",
mimeType: "multipart/form-data",
cache:false,
processData:false,
contentType:false,
async:false,
success:function(data){
console.log(data)
}
})
至此两种方式配置结束,form表单形式更容易实现,也比较常用,推荐使用这种,希望能帮助到你!
SSM框架实现多张图片和其他数据一起上传的更多相关文章
- Jquery DataTable AJAX跨域请求的解决方法及SSM框架下服务器端返回JSON格式数据的解决方法
如题,用HBuilder开发APP,涉及到用AJAX跨域请求后台数据,刚接触,费了不少时间.幸得高手指点,得以解决. APP需要用TABLE来显示数据,因此采用了JQ 的DataTable. 在实现 ...
- 基于springboot的SSM框架实现返回easyui-tree所需要数据
1.easyui-tree easui-tree目所需要的数据结构类型如下: [ { "children": [ { "children": [], " ...
- 使用.NET框架、Web service实现Android的文件上传(二)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...
- 基于python的Elasticsearch索引的建立和数据的上传
这是我的第一篇博客,还请大家多多指点 Thanks ♪(・ω・)ノ 今天我想讲一讲关于Elasticsearch的索引建立,当然提前是你已经安装部署好Elasticsearch. ok ...
- JAVA 后台SSM框架接收安卓端的json数据
最近项目上与安卓端做JSON数据交互,使用的SSM框架,刚开始的时候感觉很简单,想着不就是把安卓端的JSON数据封装为Bean类对象吗? 于是就这样写了 可是这样一直报400,百度原因是因为请求url ...
- 搭建ssm框架,可实现登录和数据展示以及增删改查
需求: 后台使用ssm(spring-springMVC-mybatis)进行整合 前台使用bootstrap框架 前后台交互使用Ajax进行发送 表结构: 登录页面后显示所有用户信息,可对每条进行增 ...
- SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器
目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...
- [iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]
简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...
- Android 利用an框架快速实现网络请求(含下载上传文件)
作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22573081来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. an框架的网络框架是完全 ...
随机推荐
- Java 基础之 String 类
String String 被声明为 final,因此不能被继承.(Integer 等包装类也不能被继承) 在 java8 中,String 内部使用 char 数组 来存储数据 public fin ...
- 腾讯短信平台ASP接口范例
疫情后一个小项目要用到腾讯短信平台,因为比较老,用ASP写的,平台没有相应的ASP接口,百度不到,无奈之下自己写了一个,也方便需要的朋友们. 主要代码如下: <!--#include file= ...
- 第5.3节 详说Python风格的函数分配参数
一. 分配参数的定义 参数收集就是在定义函数时不能确认参数个数,用收集参数将调用时不确定数量的实参存放到收集参数的元组中.分配参数与此过程相反,它不是在定义函数形参时使用星号(1个或2个),而是 ...
- 第四十一章、PyQt显示部件:TextBrowser、CalendarWidget、LCDNumber、ProgressBar、Label、HorizontalLine和VerticalLine简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在Designer中,显示部件有Labe ...
- Python中import模块时报SyntaxError: (unicode error)utf-8 codec can not decode 错误的解决办法
老猿有个通过UE编辑(其他文本编辑器一样有类似问题)的bmi.py文件,在Python Idle环境打开文件执行时没有问题,但import时报错: SyntaxError: (unicode erro ...
- 对巡风vulscan的理解
# coding:utf-8 # 漏洞检测引擎 import urllib2 import thread import time import pymongo import sys import da ...
- Panda交易所视点观察:政府连发区块链建设文件,相关概念股受追捧
日前,Panda交易所从北京市地方金融监督管理局获悉,证监会已同意在北京.苏州.上海.浙江.深圳等地区的区域性股权市场参与区块链建设工作.以上5市金融监管局将按照中国证监会的统一部署要求推进建设工作. ...
- 学习笔记:四边形不等式优化 DP
定义 & 等价形式 四边形不等式是定义在整数集上的二元函数 \(w(x, y)\). 定义:对于任意 \(a \le b \le c \le d\),满足交叉小于等于包含(即 \(w(a, c ...
- Java并发编程的艺术(九)——闭锁、同步屏障和信号量
闭锁:CountDownLatch 使用场景 当前线程需要等待若干条线程执行完毕后,才能继续执行的情况. 也可以是若干个步骤执行完毕后的情况. 使用方法 初始化闭锁的时候,填入计数值,然后等待其他线程 ...
- 苹果M1芯片各种不支持,但居然可以刷朋友圈!你会买单吗?
上个月和大家一起分享过,最新的苹果M1芯片上支持的各种开源软件.什么?还没读过?赶紧点这里:一文解读苹果 M1 芯片电脑上的开源软件. 现在已经过去了半个月,想必有不少的同学都已经入手了最新的苹果M1 ...