- 浏览: 303751 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yahier:
没帮助。。。。。。
利用JS获取经纬度,定位html地图 -
mountainol:
[img][img][img][img][url][flash ...
iPhone面试题解答,真机调试 -
qww_friend:
很不错的一个案例,试了下,没有报错,就是我想要的
Poi读取Excel2007 -
zcw_java:
peng051410 写道啥时候能更新呢?求解! 好久没弄过了 ...
Spring Security-session过期跳出<iframe> -
peng051410:
啥时候能更新呢?求解!
Spring Security-session过期跳出<iframe>
利用MultipartFile实现文件上传
在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下.
一.主要有两个java类,和一般的servlet放在一起即可.
1.FileUploadBean.java
package chb.demo.web;
import org.springframework.web.multipart.MultipartFile;
/** *//**
* @author chb
*
*/
public class FileUploadBean ...{
private MultipartFile file;
public void setFile(MultipartFile file) ...{
this.file = file;
}
public MultipartFile getFile() ...{
return file;
}
}
2.FileUploadController.java
package chb.demo.web;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/** *//**
* @author chb
*
*/
public class FileUploadController extends SimpleFormController ...{
protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)...{
try
...{
// cast the bean
FileUploadBean bean = (FileUploadBean) command;
// let's see if there's content there
MultipartFile file = bean.getFile();
if (file == null) ...{
throw new Exception("上传失败:文件为�空");
}
if(file.getSize()>10000000)
...{
throw new Exception("上传失败:文件大小不能超过10M");
}
//得到文件�名
String filename=file.getOriginalFilename();
if(file.getSize()>0)...{
try ...{
SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
} catch (IOException e) ...{
System.out.println(e.getMessage());
return null;
}
}
else...{
throw new Exception("上传失败:上传文件不能为�空");
}
// well, let's do nothing with the bean for now and return:
try ...{
return super.onSubmit(request, response, command, errors);
} catch (Exception e) ...{
System.out.println(e.getMessage());
return null;
}
}
catch(Exception ex)
...{
System.out.println(ex.getMessage());
return null;
}
}
/** *//**保存文件
* @param stream
* @param path
* @param filename
* @throws IOException
*/
public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
...{
FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
...{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
}
二.配置文件中如下配置:
1.web.xml,利用spring mvc模式,大家应该都很熟悉了
<servlet>
<servlet-name>chb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>chb</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Multi-Action 用来标识method的变量名定义-->
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>action</value>
</property>
<property name="defaultMethodName">
<value>index</value>
</property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="10000000"/>
</bean>
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/upload.do">fileUploadController</prop>
</props>
</property>
</bean>
<bean id="fileUploadController" class="chb.demo.web.FileUploadController">
<property name="commandClass" value="chb.demo.web.FileUploadBean"/>
<!-- 上传失败时跳转页面 -->
<property name="formView" value="/user/err.jsp"/>
<!-- 上传成功时跳转页面 -->
<property name="successView" value="/user/confirmation.jsp"/>
</bean>
</beans>
三.设定jsp页面
<form id="form1" method="post" action="upload.do" enctype="multipart/form-data">
<tr>
<td width="25%" align="right">上传文件:</td>
<td><input id="file" type="file" NAME="file" style="width:300px;"></td>
</tr>
<tr align="center" valign="middle">
<td height="60" colspan="2"><input type="submit" ID="BtnOK" value="确认上传"></td>
</tr>
</form>
ok,现在就可以上传文件了,挺简单吧?这里我只列出了基本步骤,至于具体的操作(比如中文问题)可能就需要大家自己再完善完善了.
在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下.
一.主要有两个java类,和一般的servlet放在一起即可.
1.FileUploadBean.java
package chb.demo.web;
import org.springframework.web.multipart.MultipartFile;
/** *//**
* @author chb
*
*/
public class FileUploadBean ...{
private MultipartFile file;
public void setFile(MultipartFile file) ...{
this.file = file;
}
public MultipartFile getFile() ...{
return file;
}
}
2.FileUploadController.java
package chb.demo.web;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/** *//**
* @author chb
*
*/
public class FileUploadController extends SimpleFormController ...{
protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)...{
try
...{
// cast the bean
FileUploadBean bean = (FileUploadBean) command;
// let's see if there's content there
MultipartFile file = bean.getFile();
if (file == null) ...{
throw new Exception("上传失败:文件为�空");
}
if(file.getSize()>10000000)
...{
throw new Exception("上传失败:文件大小不能超过10M");
}
//得到文件�名
String filename=file.getOriginalFilename();
if(file.getSize()>0)...{
try ...{
SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
} catch (IOException e) ...{
System.out.println(e.getMessage());
return null;
}
}
else...{
throw new Exception("上传失败:上传文件不能为�空");
}
// well, let's do nothing with the bean for now and return:
try ...{
return super.onSubmit(request, response, command, errors);
} catch (Exception e) ...{
System.out.println(e.getMessage());
return null;
}
}
catch(Exception ex)
...{
System.out.println(ex.getMessage());
return null;
}
}
/** *//**保存文件
* @param stream
* @param path
* @param filename
* @throws IOException
*/
public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
...{
FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
...{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
}
二.配置文件中如下配置:
1.web.xml,利用spring mvc模式,大家应该都很熟悉了
<servlet>
<servlet-name>chb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>chb</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Multi-Action 用来标识method的变量名定义-->
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>action</value>
</property>
<property name="defaultMethodName">
<value>index</value>
</property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="10000000"/>
</bean>
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/upload.do">fileUploadController</prop>
</props>
</property>
</bean>
<bean id="fileUploadController" class="chb.demo.web.FileUploadController">
<property name="commandClass" value="chb.demo.web.FileUploadBean"/>
<!-- 上传失败时跳转页面 -->
<property name="formView" value="/user/err.jsp"/>
<!-- 上传成功时跳转页面 -->
<property name="successView" value="/user/confirmation.jsp"/>
</bean>
</beans>
三.设定jsp页面
<form id="form1" method="post" action="upload.do" enctype="multipart/form-data">
<tr>
<td width="25%" align="right">上传文件:</td>
<td><input id="file" type="file" NAME="file" style="width:300px;"></td>
</tr>
<tr align="center" valign="middle">
<td height="60" colspan="2"><input type="submit" ID="BtnOK" value="确认上传"></td>
</tr>
</form>
ok,现在就可以上传文件了,挺简单吧?这里我只列出了基本步骤,至于具体的操作(比如中文问题)可能就需要大家自己再完善完善了.
发表评论
-
Spring工具WebApplicationContextUtils
2012-11-12 14:16 2642当 Web 应用集成 Spring 容器后,代表 Sprin ... -
Spring使用Jackson过滤!JSON
2012-05-26 03:40 7918原文http://www.cnblogs.com/zcw-io ... -
Jackson 框架,轻易转换JSON
2012-05-22 01:17 1094Jackson可以轻松的将Java对象转换成json对象和xm ... -
Spring MVC业务层处理
2012-05-22 00:57 1072//spring jsonView参考 http://spri ... -
Spring Security-session过期跳出<iframe>
2012-03-15 22:56 4410这个问题纠结了好久!! 首先web.xml里配置session ... -
Spring中的过滤敏感字段浅谈
2012-02-15 15:20 2158之前用过一次,但今天用的时候出现了新的问题! 配置仍然不变 ... -
二、Spring Security
2011-12-15 11:31 913找了很多文章,文档结合源码构建成功了.在这里花点时间整理一下, ... -
一、Spring Security基础了解
2011-12-15 11:27 768公司目前在用Spring Security框架,用来控制权限; ... -
Quartz+Spring-定时动作
2011-12-12 16:35 920xml文件的配置(Quartz1.6.3,Spring2.5. ... -
Spring3.0注解@Transactional事务处理
2011-12-07 10:59 1464@Transactional(propagation=Pr ... -
Spring-JSON返回日期格式
2011-12-06 15:33 2597首先是类型转换问题! 在JavaBean里字段是Date类型, ... -
Jackson返回日期格式
2011-12-06 14:54 1643近日,使用Jackson转化JSON对象的时候,显示的时候,日 ... -
org.springframework.web.multipart.MultipartFile以及类型记录
2011-10-28 14:19 9997接口需求是Android/iPhone需要通过接口上传一些文件 ... -
当@PathVariable遇上中文和点
2011-08-26 10:21 1326Spring MVC从3.0开始支持REST,而主要就是通过@ ... -
Spring MVC的自省机制填充
2011-08-19 17:55 1186<%@ page language="java ...
相关推荐
在本文中,我们将深入探讨Spring框架中的`MultipartFile`接口,它是处理文件上传的核心组件。同时,我们还将介绍如何结合JQuery的uploader插件来实现一个用户友好的前端文件上传功能。 Spring `MultipartFile` 是...
在Web应用中,文件上传功能是常见的需求之一,Spring框架提供了对文件上传的支持,主要基于MultipartFile接口。本文将深入探讨Spring Multipart的工作原理,以及如何实现文件从客户端上传到服务器的过程。 首先,...
在SpringMVC框架中,处理文件上传通常涉及`MultipartFile`接口,它是Spring提供的一个用于处理上传文件的数据类型。当用户通过HTTP请求上传文件时,SpringMVC会将这些文件封装成`MultipartFile`对象。然而,在实际...
在Java Web开发中,我们经常会遇到需要处理上传文件的情况,其中`MultipartFile`是Spring MVC框架提供的一种用于处理文件上传的接口。然而,在实际操作中,我们可能需要将已有的`File`对象转换为`MultipartFile`,...
需求分析: 通过安卓打开相机相册,使用SSM框架搭建后台接口,前端使用retrofit2进行文件传输 注:低门槛实现系列就是不涉及过深的知识点,不做过多的异常捕获,不过滤版本不判空,面向小白。 ...
在SpringMVC中,`MultipartFile`接口是处理文件上传的核心组件。本文将深入探讨如何使用`MultipartFile`实现文件上传,以及如何结合FTP服务器进行跨服务器文件传输。 首先,要启用SpringMVC的文件上传功能,我们...
通过import org.springframework.web.multipart.MultipartFile;上传文件的一个工具性的jar.
然后,后台接收这些文件时,Spring MVC会自动将上传的文件封装成`MultipartFile`对象,放入一个`MultipartFile[]`数组中。 处理`MultipartFile`数组时,我们可以通过遍历数组来分别处理每个文件。每个`...
在Web开发中,我们经常需要处理用户上传的文件,MultipartFile是Spring框架提供的一种处理文件上传的接口,它使得我们可以方便地接收和处理上传的Excel文件。下面我们将深入探讨如何使用Java POI和MultipartFile来...
在Java开发中,MultipartFile是Spring框架提供的一种用于处理上传文件的接口,它使得开发者能够方便地接收HTTP请求中的多部分(Multipart)数据,其中包括图片的上传。在本场景下,我们将探讨如何实现多图片上传的功能...
在Gateway中,可以利用Spring MVC的`@RequestParam`或`MultipartFile`注解来接收文件。 2. **Controller处理文件**:在Spring MVC的Controller中,可以定义一个处理文件上传的方法。例如: ```java @PostMapping...
在Java后端,我们可以使用Spring的`@RequestParam("file") MultipartFile[] files`来接收这些文件。 对于单文件上传,一个简单的例子如下: ```java File file = ... // 获取到的文件 RequestBody requestBody = ...
org.springframework.web.multipart.MultipartFile.class org.springframework.web.multipart.MultipartHttpServletRequest.class org.springframework.web.multipart.MultipartResolver.class org.springframework....
《Spring框架Web模块详解——聚焦于WebSocket服务器端点支持》 在Java开发领域,Spring框架以其强大的功能和灵活的设计闻名,而`org.springframework.web`包是Spring框架中的一个重要部分,它提供了处理HTTP请求和...
public ResponseEntity<?> handleFileUpload(@RequestParam("file") MultipartFile file) { // 处理文件上传逻辑 } ``` 在实际应用中,我们还需要处理可能出现的异常,比如文件过大、文件类型不匹配等问题。同时,...
这个微服务可以使用Spring Boot的MultipartFile接口来接收上传的文件,并将其保存到本地存储或云存储服务。 为了实现负载均衡,Spring Cloud提供了Ribbon组件。Ribbon是一个客户端侧的负载均衡器,它可以自动将请求...
在文件上传和下载功能上,Spring MVC提供了MultipartFile接口,使得处理文件上传变得简单。同时,Spring的IoC容器能够管理临时目录和文件资源,方便文件下载操作。 综上所述,Spring 4.3.7及以上的jar包包含了...
文件上传下载 根据multipart类的方法: 即multipartFile.transferTo(file); 就完成文件上传
通过MultipartFile接口,开发者可以方便地处理用户上传的文件,同时也能轻松实现文件的下载服务。 七、安全性与认证 Spring Security是Spring生态系统的一部分,它可以与Spring Web紧密结合,提供身份验证、授权、...
解决 Spring Boot MultipartFile 文件上传遇到的问题 基于 Spring Boot 框架的 MultipartFile 文件上传经常会遇到一些问题,本文将介绍如何解决这些问题,希望对大家有所帮助。 问题一:ajax 传过去的参数在 ...