在正式图片上传之前,先处理一个细节问题:

每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失

为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录。

上传图片:

<form method="post" enctype="multipart/form-data">
<input type="file" name="pictureFile">
</form>

在上传图片之前,需要在springMVC.xml中配置:

    <!-- 上传图片配置实现类 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上传图片的大小(单位:字节)-->
<property name="maxUploadSize" value="5000000" />
</bean>

注意:这个id不能改成其他的,否则无效

除了上传文件大小以外,还有其他几个参数,这里就不一一展示了

保存图片到F:/upload:

    @RequestMapping(value = "/upload")
public ModelAndView upload(MultipartFile pictureFile) {
// 保存图片 // 防止重复,给图片id设为UUID
String id = UUID.randomUUID().toString().replace("-", ""); String exName = FilenameUtils.getExtension(pictureFile.getOriginalFilename()); String name = id+"."+exName; try {
pictureFile.transferTo(new File("F:\\upload\\" + name));
} catch (Exception e) {
e.printStackTrace();
} //保存ID到数据库
//userService.savePicture(id); ModelAndView mav = new ModelAndView();
mav.setViewName("success");
return mav;
}

为了方便获得文件扩展名,这里用了其他的包,如果自己写稍显麻烦:

JSON交互:

首先要导入JSON需要的包:

前端AJAX:

<script type="text/javascript">
$(function(){
var params = '{"id": 1,"name": "测试商品","price": 99.9,"detail": "测试商品描述","pic": "123456.jpg"}';
$.ajax({
url : "${pageContext.request.contextPath }/json.action",
data : params,
contentType : "application/json;charset=UTF-8",
type : "post",
dataType : "json",
success : function(data){
alert(data.name);
}
});
});
</script>

Controller:

    //json交互
@RequestMapping(value = "/json.action")
public @ResponseBody
Items json(@RequestBody Items items) {
//RequestBody注解,可以将json字符串解析到Items对象中
//注意:Items的属性名必须和json的Key一致
System.out.println(items); Items responseItem = new Items();
items.setName("success");
//ReponseBody注解:自动将对象封装成JSON字符串返回 return responseItem;
}

SpringMVC框架五:图片上传与JSON交互的更多相关文章

  1. JAVAEE——SpringMVC第二天:高级参数绑定、@RequestMapping、方法返回值、异常处理、图片上传、Json交互、实现RESTful、拦截器

    1. 课前回顾 https://www.cnblogs.com/xieyupeng/p/9093661.html 2. 课程计划 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 ...

  2. SpringMVC 框架完成图片上传到项目路径操作

    /** * 保存添加 * * @return */ @RequestMapping(value = "taizhang/add.action", method = { Reques ...

  3. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!—配置文件上传解释器 --> <mvc:annotation-driven>&l ...

  4. springMVC和ckeditor图片上传

    springMVC和ckeditor图片上传 http://blog.csdn.net/liuchangqing123/article/details/45270977 修正一下路径问题: packa ...

  5. springmvc图片上传、json

    springmvc的图片上传 1.导入相应的pom依赖 <dependency> <groupId>commons-fileupload</groupId> < ...

  6. ssm框架实现图片上传显示并保存地址到数据库

    本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...

  7. SpringMVC框架——文件的上传与下载

    使用SpringMVC框架做个小练习,需求: 1.单个图片上传并显示到页面中: 2.多个图片上传并显示到页面中: 3.上传文件后下载文件: 1.pom.xml中添加依赖 <!-- 文件上传 -- ...

  8. Ueditor1.4.3.3+springMvc+maven 实现图片上传

    前记:由于项目中需要有一个新增数据并且要能支持表格图片上传的功能.使用了ueditor控件.为实现这个功能,从一开始什么都看不懂,到一直连着弄了5天,总算是有了眉目.在此记录一下以便能帮到可以和我一样 ...

  9. SpringMVC框架06——文件上传与下载

    1.文件上传 Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现. ...

随机推荐

  1. supermap数据库型数据源的数据索引问题

    按如下方式查看帮助文档,根据不同的场景选用不同的索引

  2. HDU 6161.Big binary tree 二叉树

    Big binary tree Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  3. Linux平台生成awr报告

    1.使用oracle用户登录应用服务器所使用的数据库所在的服务器 # su –oracle 2.输入env命令,查询出ORACLE_HOME 目录 3.然后进入$ORACLE_HOME/rdbms/a ...

  4. window环境下修改postgrep密码

    本机window7 64位系统,安装的PostgreSQL 9.3 默认安装是没有设置密码的,使用pgAdmin III登陆需要登陆密码. 我们使用默认安装的工具 SQL Shell 来操作. 我们依 ...

  5. win10传奇手册CHM打开无法阅读解决

    今天在阅读传奇的帮助文档时候,突然遇到了一个问题.打开为空白. 如图所示  我这个情况打开的时候会提示 这个时候我们把 打开此文件总是询问 这个对勾 去掉 惊喜有没有. 哈哈 .有问题欢迎大家私信我!

  6. 移动端比较好用的滑动条 vue-slider-component

    安装: npm install vue-slider-component <template> <div> <vue-slider v-model="value ...

  7. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  8. 编写shell脚本kill掉占用cpu超过90%以上的程序

    由于集群用户经常会不懂如何提交作业,将作业直接运行到登录节点上,这样导致登录节点的cpu及内存占用很大,导致其他用户甚至无法登录.所以就想到了一种解决方法,写一个shell脚本,常驻登录节点,监控cp ...

  9. 流量控制与RateLimiter

    一背景 如何提高系统的稳定性,简单来说除了加机器外就是服务降级.限流.加机器就是常说的分布式,从整个架构的稳定性角度看,一般SOA每个接口的所能提供的单位时间服务能力是有上限.假如超过服务能力,一般会 ...

  10. 负载均衡器之 Haproxy

    1. 编译安装haproxy 官网: http://www.haproxy.org 1.1 下载haproxy # wget http://www.haproxy.org/download/1.6/s ...