- 浏览: 81197 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (80)
- java (20)
- java 日志 (1)
- 网络应用 (1)
- 算法 (3)
- struts (2)
- 线程 (2)
- 数据库 (1)
- tools (1)
- lunix (8)
- Android (4)
- Nutch原理 (1)
- 字符编码 (1)
- 框架 (3)
- spring (7)
- Oracle (2)
- 数据连接池 (3)
- solr (3)
- 思想 (2)
- 架构设计 (1)
- 缓存 (2)
- hibernate (1)
- 学习 (1)
- java,jvm (1)
- 分页插件 (1)
- javascript (1)
- nginx (2)
- svn (2)
- 内存 (3)
- sqlserver (1)
- UML (1)
- JS 跨域 (1)
- mybatis (1)
- 加密 (0)
最新评论
-
q15106202446:
不知不觉 这些都有所了解了!时间过的好快..该进攻系统架构了
学习(转) -
zkq-java:
zkq-java 写道[u][/u]引用[i][/i][*][ ...
Solr 创建索引的原理 源码分析 -
zkq-java:
[u][/u]引用[i][/i][*][img][/img][ ...
Solr 创建索引的原理 源码分析
spring支持在网络应用程序处理文件上传,提供拔插的org.springframework.web.multipart.MultipartResolver对象 。
在写上传文件的前提下需提供两个jar包:
1.添加上传拦截,可指定上传的大小
- <!-- 上传拦截,如最大上传值及最小上传值 -->
- <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="100000" />
- </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="100000" /> </bean>
2.添加java后台处理的API
- @RequestMapping(value = "/form", method = RequestMethod.POST)
- public String handleFormUpload(@RequestParam("name") String name,
- @RequestParam("file") MultipartFile file) {
- if (!file.isEmpty()) {
- byte[] bytes = file.getBytes();
- // 去理上传写文件代码
- }
@RequestMapping(value = "/form", method = RequestMethod.POST) public String handleFormUpload(@RequestParam("name") String name, @RequestParam("file") MultipartFile file) { if (!file.isEmpty()) { byte[] bytes = file.getBytes(); // 去理上传写文件代码 }
具体文件
spring_mvc.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <!-- 注解资源扫描包路径 -->
- <context:component-scan base-package="org.spring.mvc" />
- <bean
- class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
- <bean
- class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
- <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析-->
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass"
- value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/" /><!-- 跳转页面的前缀路径 如 /web-inf/user/ -->
- <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp-->
- </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="100000" />
- </bean>
- </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 注解资源扫描包路径 --> <context:component-scan base-package="org.spring.mvc" /> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/" /><!-- 跳转页面的前缀路径 如 /web-inf/user/ --> <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp--> </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="100000" /> </bean> </beans>
FileUploadController.java文件
- package org.spring.mvc.upload;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.List;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.spring.mvc.HelloWorldController;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
- /**
- * 上传文件
- * @author chenyw
- *
- */
- @Controller
- @RequestMapping(value = "/toFileUpload")
- public class FileUploadController {
- private Logger logger = LoggerFactory.getLogger(HelloWorldController.class);
- /**
- * 单文件上传
- * @param name @RequestParam 取得name字段的值
- * @param file 文件
- * @return
- * @throws IOException
- */
- @RequestMapping(value = "/oneFileUpload", method = RequestMethod.POST)
- public String handleFormUpload(@RequestParam("name")
- String name, @RequestParam("file")
- MultipartFile file) throws IOException {
- logger.info("name:"+name);
- logger.info("上传文件:"+file.getOriginalFilename());
- if (!file.isEmpty()) {
- this.copyFile(file.getInputStream(), file.getOriginalFilename());
- }
- return "fileUpload/success";
- }
- /**
- * 多文件上传
- * @param request
- * @param name
- * @return
- * @throws Exception
- */
- @RequestMapping(value = "/multipartFileUpload",method = RequestMethod.POST)
- public String upload2(
- MultipartHttpServletRequest request ,
- @RequestParam("name") String name // 页面上的控件值
- ) throws Exception {
- List<MultipartFile> files = request.getFiles("file");
- for( int i=0; i<files.size() ;i++){
- if(! files.get(i).isEmpty()) {
- logger.info("上传文件:"+files.get(i).getOriginalFilename());
- this.copyFile(files.get(i).getInputStream(), files.get(i).getOriginalFilename());
- }
- }
- logger.info("success");
- return "fileUpload/success";
- }
- /**
- * 写文件到本地
- * @param in
- * @param fileName
- * @throws IOException
- */
- private void copyFile(InputStream in,String fileName) throws IOException{
- FileOutputStream fs = new FileOutputStream("d:/upload/"
- + fileName);
- byte[] buffer = new byte[1024 * 1024];
- int bytesum = 0;
- int byteread = 0;
- while ((byteread = in.read(buffer)) != -1) {
- bytesum += byteread;
- fs.write(buffer, 0, byteread);
- fs.flush();
- }
- fs.close();
- in.close();
- }
- }
package org.spring.mvc.upload; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spring.mvc.HelloWorldController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; /** * 上传文件 * @author chenyw * */ @Controller @RequestMapping(value = "/toFileUpload") public class FileUploadController { private Logger logger = LoggerFactory.getLogger(HelloWorldController.class); /** * 单文件上传 * @param name @RequestParam 取得name字段的值 * @param file 文件 * @return * @throws IOException */ @RequestMapping(value = "/oneFileUpload", method = RequestMethod.POST) public String handleFormUpload(@RequestParam("name") String name, @RequestParam("file") MultipartFile file) throws IOException { logger.info("name:"+name); logger.info("上传文件:"+file.getOriginalFilename()); if (!file.isEmpty()) { this.copyFile(file.getInputStream(), file.getOriginalFilename()); } return "fileUpload/success"; } /** * 多文件上传 * @param request * @param name * @return * @throws Exception */ @RequestMapping(value = "/multipartFileUpload",method = RequestMethod.POST) public String upload2( MultipartHttpServletRequest request , @RequestParam("name") String name // 页面上的控件值 ) throws Exception { List<MultipartFile> files = request.getFiles("file"); for( int i=0; i<files.size() ;i++){ if(! files.get(i).isEmpty()) { logger.info("上传文件:"+files.get(i).getOriginalFilename()); this.copyFile(files.get(i).getInputStream(), files.get(i).getOriginalFilename()); } } logger.info("success"); return "fileUpload/success"; } /** * 写文件到本地 * @param in * @param fileName * @throws IOException */ private void copyFile(InputStream in,String fileName) throws IOException{ FileOutputStream fs = new FileOutputStream("d:/upload/" + fileName); byte[] buffer = new byte[1024 * 1024]; int bytesum = 0; int byteread = 0; while ((byteread = in.read(buffer)) != -1) { bytesum += byteread; fs.write(buffer, 0, byteread); fs.flush(); } fs.close(); in.close(); } }
单文件上传页面oneFileUpload.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'oneFileUpload.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- This is my onefileUpload page. <br>
- <form method="POST" action="toFileUpload/oneFileUpload" enctype="multipart/form-data">
- <input type="text" name="name"/>
- <input type="file" name="file"/>
- <input type="submit"/>
- </form>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'oneFileUpload.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> This is my onefileUpload page. <br> <form method="POST" action="toFileUpload/oneFileUpload" enctype="multipart/form-data"> <input type="text" name="name"/> <input type="file" name="file"/> <input type="submit"/> </form> </body> </html>
多文件上传页面multipartFileUpload.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'multipartFileUpload.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- This is multipartFileUpload page. <br>
- <form method="POST" action="toFileUpload/multipartFileUpload" enctype="multipart/form-data">
- <input type="text" name="name"/><br>
- <input type="file" name="file"/><br>
- <input type="file" name="file"/><br>
- <input type="submit"/><br>
- </form>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'multipartFileUpload.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> This is multipartFileUpload page. <br> <form method="POST" action="toFileUpload/multipartFileUpload" enctype="multipart/form-data"> <input type="text" name="name"/><br> <input type="file" name="file"/><br> <input type="file" name="file"/><br> <input type="submit"/><br> </form> </body> </html>
发表评论
-
spring中的定时器功能
2013-03-21 13:45 732本文为抄袭,仅为保存资源 spring的定时器功能,它不仅 ... -
深度解析Java内存的原型及工作原理
2013-02-17 10:21 663本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲 ... -
Java文件上传组件 common-fileUpload 使用教程
2012-05-25 15:26 3451最近项目中,在发布商品的时候要用到商品图片上传功能(网站前 ... -
究 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用(转)
2012-05-22 16:18 4099大家应该都已经知道Spring 3.1对无web.xml式 ... -
探 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用(转)
2012-05-22 16:09 3090探 Spring 3.1之无web.xml式 基于代码 ... -
java面试经典(转)
2012-05-15 16:31 450http://blog.csdn.net/aweijun360 ... -
Servlet 3.0 简介
2012-05-08 15:28 1123Java servlets 是一项被普 ... -
Spring MVC国际化配置(转)
2012-04-20 15:41 1064一、基于浏览器语言的国际化配置 使用Spring的MVC,并且 ... -
java入门基础(一)
2012-04-05 08:19 677java 的核心思想 ... -
spring 源码解析(一) 转
2012-03-23 14:31 779在认真学习Rod.Johnson的三部曲之一:<&l ... -
spring 加载资源文件(转)
2012-03-22 09:01 873spring 加载资源文件 在Spring 中可以使用以 ... -
hibernate与ibatis的区别
2012-03-07 09:05 875hibernate 是一站式ORM orm mappin ... -
Servlet 3.0 新特性概览
2012-01-20 17:01 877转自http://blog.csdn.net/xiazdo ... -
配置文件load的几种方法(转)
2012-01-20 11:22 8221. InputStreamResource(Input ... -
Java关键字
2012-01-20 10:16 768Java关键字(keywords) abstract ... -
读源码之重拾接口与继承
2012-01-19 15:41 709Java抽象类和接口的区别(好长时间没看这种文章了) ... -
java 基础 集合
2012-01-18 11:09 848ArrayList和LinkedList, Ar ... -
HttpUrlContent 详解
2012-01-18 08:45 964下边的总结对我帮助蛮大的~不仅用法了解,整个连接流程也要明 ... -
SAXReader解析XML
2012-01-18 08:43 3187总结: Document document=new SA ... -
threadlocal
2012-01-17 11:28 742概述 我们知道Spring通 ...
相关推荐
标题 "cos spring fileupload" 涉及到的是在Spring框架中使用腾讯云对象存储(COS)进行文件上传的功能。这一主题涵盖了Spring MVC的扩展和COS客户端库的使用,以便实现高效的文件上传服务。 首先,让我们了解一下...
在这个例子中,我们关注的是如何结合Hessian和Spring框架来实现文件上传。Hessian是一种高效的RPC(远程过程调用)协议,它能够提供轻量级的、跨语言的服务调用,而Spring则是一个广泛使用的Java企业级应用开发框架...
7. **与其他库的集成**:Apache Commons FileUpload可与Servlet API、Spring MVC、Struts等Web框架无缝集成,简化了在这些框架中实现文件上传的复杂性。 源码分析对于理解其内部工作原理非常有帮助。`commons-...
在生产环境中,还应考虑使用更安全的方式处理文件上传,如使用Spring MVC或类似框架的文件上传支持。 总的来说,`commons-fileupload`和`commons-io`为Java Web开发者提供了方便、灵活的文件上传解决方案。通过学习...
Spring自带了一个基于Commons FileUpload的实现,即`CommonsMultipartResolver`。我们需要在Spring的配置文件中启用这个解析器,并设置一些参数,比如最大文件大小和临时目录路径。这样,Spring MVC就能识别并处理...
- Spring MVC: 在Spring MVC应用中,可以与`CommonsMultipartResolver`结合,自动处理文件上传。 - Struts 2: 对于基于Struts 2的应用,可以通过配置`struts.multipart.parser`属性为`jakarta`来启用Apache ...
在实际应用中,结合Servlet或Spring MVC等框架,可以轻松地集成Apache Commons FileUpload,处理用户的文件上传请求,从而构建安全、可靠的文件上传功能。同时,这个库也支持自定义策略,如文件存储路径、临时文件...
创建一个Servlet或Spring MVC的Controller,用来接收文件上传请求。在这个"fileupload使用方法demo"中,你可能会看到一个名为`FileUploadServlet`的类,它扩展了`HttpServlet`。 3. **配置Servlet**: 在web.xml...
7. **与Struts、Spring等框架的整合**:Commons FileUpload库可以轻松与主流的Java Web框架集成,如Struts、Spring MVC等,使得文件上传功能的实现更加便捷。 总的来说,Apache Commons FileUpload库是Java开发人员...
Commons FileUpload是Apache组织提供的一款强大的Java文件上传处理组件,常用于Web应用中处理用户通过表单上传的文件。在Web开发中,尤其是在涉及到用户上传照片、文档等大文件时,FileUpload组件提供了方便、高效的...
一个可以运行的项目,关于大附件上传这块的关键技术,在mysql中创建 upload 数据库,导入sql文件...后端导了fileupload的jar包 前端用了plupload的js插件 没有加mybatis和spring更具需要自己加 如果满意可以请评论点赞
为了实现这个功能,开发者通常会依赖于特定的库,而"FileUpload所需的两个jar包"正是针对这一需求的关键组件。这两个jar包是"commons-fileupload-1.2.1.jar"和"commons-io-1.3.2.jar",它们来自Apache Commons项目,...
在给定的压缩包"commons总包+spring总包+常用包.rar"中,包含了多个重要的Java库,这些库在IT行业中广泛应用于开发各种应用程序,尤其是Web应用。下面将详细阐述其中包含的主要组件及其功能: 1. **Spring AOP ...
综上所述,"fileupload.zip"可能包含了如何在Spring MVC中实现文件上传的代码实例,包括配置、控制器方法、文件处理和错误处理等。通过这个压缩包,你可以学习并实践如何在实际项目中实现文件上传功能。
7. **与其他组件集成**:FileUpload常与Spring MVC、Struts等框架集成,处理文件上传请求。通过了解其工作原理,开发者可以更好地调试和优化与这些框架的交互。 总的来说,Apache Commons FileUpload是处理HTTP文件...
"fileupload jar包"是Java Web开发中常用的一个组件,主要用于处理HTTP请求中的文件上传功能。...在实际开发中,通常会结合其他框架,如Spring MVC,将`fileupload`整合进更高级别的文件上传处理逻辑中。
创建一个Servlet或Spring MVC Controller来接收文件上传请求。这里以Servlet为例: ```java import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadBase....
在实际使用中,开发者通常会结合Servlet或者Spring MVC等Web框架来调用Commons FileUpload。在Servlet中,你需要创建一个`ServletFileUpload`实例并配置相关参数,然后调用`parseRequest`方法来解析请求。对于每个...
在本场景中,我们关注的是使用Maven构建的Spring MVC项目,并涉及到`commons-fileupload`和`commons-io`这两个库,它们是Java中处理文件上传的核心工具。以下是关于这个主题的详细知识点: 1. **Spring MVC**: ...