整理文档,搜刮出一个SpringMvc MultipartFile实现图片文件上传示例,稍微整理精简一下做下分享。

spring-servlet.xml
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10240000" />
</bean>
upload/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>单图片上传</title> </head> <body> <fieldset> <legend>图片上传</legend> <h2>只能上传单张10M以下的 PNG、JPG、GIF 格式的图片</h2> <form action="/shop/auth/photoUpload" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="file"> <input type="submit" value="上传"> </form> </fieldset> </body> </html>
或者使用ExtJs
js/user/photoUpload.js
Ext.onReady(function(){
Ext.create('Ext.form.Panel', {
title: '图片上传',
width: 600,
bodyPadding: 10,
frame: true,
renderTo: Ext.getBody(),
items: [{
xtype: 'filefield',
name: 'file',
fieldLabel: 'Photo',
labelWidth: 50,
msgTarget: 'side',
fileUpload: true ,
allowBlank: false,
blankText:"Select an image",
emptyText: 'You can only upload a single PNG 10M or less, JPG, GIF format images',
anchor: '100%',
buttonText: '选择图片'
}],
buttons: [{
text: '上传',
handler: function() {
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: '/shop/auth/photoUpload',
waitMsg: '正在上传图片...',
success: function(fp, o) {
Ext.Msg.alert('提示', o.result.msg);
}
});
}
}
}]
});
});
pages/user/photoUpload.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片上传</title> </head> <link href="../../ext-4.2.1.883/resources/css/ext-all.css" rel="external nofollow" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="../../ext-4.2.1.883/ext-all.js"></script> <script src="../../js/user/photoUpload.js" type="text/javascript"></script> <body> </body> </html>
AuthController.java
/**
* 图片文件上传
*/
@ResponseBody
@RequestMapping(value = "/photoUpload",method = RequestMethod.POST)
public ResultData<Object> photoUpload(MultipartFile file,HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IllegalStateException, IOException{
ResultData<Object> resultData=new ResultData<>();
// 判断用户是否登录
/*User user=(User) session.getAttribute("user");
if (user==null) {
resultData.setCode(40029);
resultData.setMsg("用户未登录");
return resultData;
}*/
if (file!=null) {// 判断上传的文件是否为空
String path=null;// 文件路径
String type=null;// 文件类型
String fileName=file.getOriginalFilename();// 文件原名称
System.out.println("上传的文件原名称:"+fileName);
// 判断文件类型
type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
if (type!=null) {// 判断文件类型是否为空
if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath=request.getSession().getServletContext().getRealPath("/");
// 自定义的文件名称
String trueFileName=String.valueOf(System.currentTimeMillis())+fileName;
// 设置存放图片文件的路径
path=realPath+/*System.getProperty("file.separator")+*/trueFileName;
System.out.println("存放图片文件的路径:"+path);
// 转存文件到指定的路径
file.transferTo(new File(path));
System.out.println("文件成功上传到指定目录下");
}else {
System.out.println("不是我们想要的文件类型,请按要求重新上传");
return null;
}
}else {
System.out.println("文件类型为空");
return null;
}
}else {
System.out.println("没有找到相对应的文件");
return null;
}
return resultData;
}
ResultData.java 代码如下:
public class ResultData<T> {
private T data;
private int code =200;
private String msg;
private Boolean success = true;
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
if(200 != code){
success = false;
}
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# multipartfile
# 上传
# spring
# mvc
# 文件上传
# mvc图片的上传
# SpringMVC中MultipartFile转File的两种方式
# SpringMVC 上传文件 MultipartFile 转为 File的方法
# SpringMVC使用MultipartFile实现文件上传
# SpringMVC使用MultipartFile 实现异步上传方法介绍
# SpringMVC中MultipartFile上传获取图片的宽度和高度详解
# springMVC MultipartFile上传图片时如何修改图片大小
# 图片上传
# 为空
# 上传文件
# 自定义
# 请按
# 没有找到
# 上传图片
# 相对应
# 大家多多
# 文档
# 目录下
# photoUpload
# method
# auth
# form
# action
# shop
# input
相关文章:
攀枝花网站建设,攀枝花营业执照网上怎么年审?
Python如何创建带属性的XML节点
建站之星安全性能如何?防护体系能否抵御黑客入侵?
建站之星备案是否影响网站上线时间?
c# 在ASP.NET Core中管理和取消后台任务
定制建站流程解析:需求评估与SEO优化功能开发指南
如何在Windows虚拟主机上快速搭建网站?
建站三合一如何选?哪家性价比更高?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
Swift中swift中的switch 语句
建站主机是否属于云主机类型?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
建站ABC备案流程中有哪些关键注意事项?
智能起名网站制作软件有哪些,制作logo的软件?
如何在自有机房高效搭建专业网站?
设计网站制作公司有哪些,制作网页教程?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
焦点电影公司作品,电影焦点结局是什么?
建站之星上传入口如何快速找到?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
PHP 500报错的快速解决方法
如何通过山东自助建站平台快速注册域名?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
建站之星安装失败:服务器环境不兼容?
如何用PHP快速搭建CMS系统?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站微信制作软件,如何制作微信链接?
如何快速生成橙子建站落地页链接?
如何通过虚拟主机快速完成网站搭建?
购物网站制作公司有哪些,哪个购物网站比较好?
怎么将XML数据可视化 D3.js加载XML
如何通过IIS搭建网站并配置访问权限?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何用wdcp快速搭建高效网站?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
独立制作一个网站多少钱,建立网站需要花多少钱?
表情包在线制作网站免费,表情包怎么弄?
如何通过宝塔面板实现本地网站访问?
,制作一个手机app网站要多少钱?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何制作一个表白网站视频,关于勇敢表白的小标题?
建站之星如何快速更换网站模板?
高防服务器租用首荐平台,企业级优惠套餐快速部署
*请认真填写需求信息,我们会在24小时内与您取得联系。