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

每一次发布项目,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;
}

最新文章

  1. 一点一滴学shell-Shell expr的用法 (转)
  2. JAVA中的注解小结
  3. ACM 括号配对问题
  4. Code Igniter + PHP5.3 + SqlServer2008配置
  5. Altium designer 原理图库快速创建
  6. lua安装和简单使用
  7. My97DatePicker时间控件使用说明
  8. Area 使用
  9. 新安装的soapui启动时报错及解决方法
  10. 七 Struts2 文件上传和下载
  11. linux 做了raid后,硬盘坏了更换问题
  12. js 上下滚动加停顿效果,js 跑马灯加停顿效果
  13. [sh]getopt参数解析
  14. 博客 first
  15. Proud Merchants(01背包变形)hdu3466
  16. ADO数据库编程入门
  17. Java网络编程一:基础知识详解
  18. 【CTF MISC】文件内容反转方法-2017世安杯CTF writeup详解
  19. [转载]Windows服务编写原理及探讨(3)
  20. 跟我一起写Makefile(六)

热门文章

  1. 执行sql语句后报1055-- this is incompatible with sql_mode=only_full_group_by
  2. 7B - 今年暑假不AC
  3. 26. pt-summary
  4. logstash 默认时间少8小时的修改办法
  5. 使用SQL创建唯一索引
  6. 当Vue中img的src是动态渲染时不显示问题
  7. python爬虫-上期所持仓排名数据爬取
  8. win10与虚拟机fedora14使用samba文件共享
  9. 《MySQL必知必会》官方提供的数据库和表
  10. cropper.js 裁剪图片