整理文档,搜刮出一个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
相关文章:
制作企业网站建设方案,怎样建设一个公司网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
宝塔建站助手安装配置与建站模板使用全流程解析
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Python如何创建带属性的XML节点
建站之星后台密码如何安全设置与找回?
如何用腾讯建站主机快速创建免费网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何通过PHP快速构建高效问答网站功能?
红河网站制作公司,红河事业单位身份证如何上传?
宝塔建站后网页无法访问如何解决?
建站主机如何选?高性价比方案全解析
小建面朝正北,A点实际方位是否存在偏差?
如何在阿里云虚拟服务器快速搭建网站?
企业微网站怎么做,公司网站和公众号有什么区别?
Python多线程使用规范_线程安全解析【教程】
建站主机CVM配置优化、SEO策略与性能提升指南
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
建站之星展会模版如何一键下载生成?
香港服务器租用费用高吗?如何避免常见误区?
如何自定义建站之星模板颜色并下载新样式?
如何选择服务器才能高效搭建专属网站?
小型网站建站如何选择虚拟主机?
如何挑选优质建站一级代理提升网站排名?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星备案是否影响网站上线时间?
python的本地网站制作,如何创建本地站点?
建站之星价格显示格式升级,你的预算足够吗?
宁波免费建站如何选择可靠模板与平台?
建站之星导航配置指南:自助建站与SEO优化全解析
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何通过FTP服务器快速搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何高效配置IIS服务器搭建网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何确保西部建站助手FTP传输的安全性?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
公众号网站制作网页,微信公众号怎么制作?
家庭建站与云服务器建站,如何选择更优?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
ui设计制作网站有哪些,手机UI设计网址吗?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在建站之星绑定自定义域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。