一、同步上传文件

  • 导入common-fileupload这个jar包。

  • 配置     springmvc-servlet.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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!-- 激活@Required @Autowired @Resource等标注-->
<context:annotation-config></context:annotation-config> <!-- DispatcherServlet上下文,扫描base-package包中的类,并自动加载到spring容器中 -->
<context:component-scan base-package="com.shyroke.controller">
</context:component-scan> <!-- 启用@Component,@Controller,@Service,@Repository注解驱动 -->
<mvc:annotation-driven/> <mvc:default-servlet-handler /> <!-- 文件处理 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean> <!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
  • index.jsp
<body>

    <form method="post" id="file_form1" action="<%=request.getContextPath()%>/uploadController/uploadForm"
enctype="multipart/form-data">
<input type="text" name="dogid" id="dogid" value="用户名"/>
<input type="text" name="dogname" id="dogname" value="复选框1"/>
<input type="file" name="faceimage" id="faceimage" size="40"/>
<input type="submit" value="上传文件"/>
</form>
</body>
  • controller
package com.shyroke.controller;

import java.io.File;
import java.io.InputStream; import javax.servlet.ServletContext; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import com.shyroke.bean.DogBean; @Controller
@RequestMapping(value="/uploadController")
public class UploadController { @Autowired
private ServletContext context; @RequestMapping(value = "/uploadForm")
public String uploadFile(
DogBean dogBean,
@RequestParam(name = "faceimage", required = false) MultipartFile faceimage)
throws Exception { System.out.println(dogBean); System.out.println(faceimage); String dogid = dogBean.getDogid();
String dogname = dogBean.getDogname(); String name = faceimage.getName();
String filename = faceimage.getOriginalFilename();
InputStream inputStream = faceimage.getInputStream();
/**
* 输出控件的名称,faceimage
*/
System.out.println("name = " + name);
/**
* 文件的名称
*/
System.out.println("filename = " + filename);
/**
* 获取文件流
*/
System.out.println("inputStream = " + inputStream); String uploadDir = context.getRealPath("/uploadfiles");
System.out.println(uploadDir); filename = System.currentTimeMillis() + "_" + filename;
File destFile = new File(uploadDir + "/" + filename);
faceimage.transferTo(destFile); return null;
}
}

二、异步上传文件

  • 导入common-fileupload这个jar包、配置     springmvc-servlet.xml 如上

  • index.jsp
    2:ajax来提交。
<form method="post" id="file_form2" action=""
enctype="multipart/form-data">
<input type="text" name="dogid" id="dogid" value="用户名"/>
<input type="text" name="dogname" id="dogname" value="复选框1"/>
<input type="file" name="faceimage" id="faceimage" size="40"/>
<input type="button" value="上传文件" onclick="uploadFile();"/>
</form>
  • controller
package com.shyroke.controller;

import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map; import javax.servlet.ServletContext; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import com.shyroke.bean.DogBean; @Controller
@RequestMapping(value = "/uploadController")
public class UploadController { @Autowired
private ServletContext context; @RequestMapping(value = "/uploadAjax")
@ResponseBody
public Map<String, Object> uploadAjax(DogBean dogBean,
@RequestParam(name = "faceimage", required = false) MultipartFile faceimage) throws Exception { System.out.println(dogBean); System.out.println(faceimage); String dogid = dogBean.getDogid();
String dogname = dogBean.getDogname(); String name = faceimage.getName();
String filename = faceimage.getOriginalFilename();
InputStream inputStream = faceimage.getInputStream();
/**
* 输出控件的名称,faceimage
*/
System.out.println("name = " + name);
/**
* 文件的名称
*/
System.out.println("filename = " + filename);
/**
* 获取文件流
*/
System.out.println("inputStream = " + inputStream); String uploadDir = context.getRealPath("/uploadfiles");
System.out.println(uploadDir);
Map<String, Object> jsonMap = new HashMap<String, Object>();
try {
filename = System.currentTimeMillis() + "_" + filename;
File destFile = new File(uploadDir + "/" + filename);
faceimage.transferTo(destFile);
jsonMap.put("flag", true);
} catch (Exception e) {
jsonMap.put("flag", false);
jsonMap.put("errorMsg", "错误");
}
return jsonMap;
}
}

(十)springmvc之文件的处理的更多相关文章

  1. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...

  2. SpringMVC学习--文件上传

    简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...

  3. Spring +SpringMVC 实现文件上传功能。。。

    要实现Spring +SpringMVC  实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ...

  4. JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习

    JAVA之旅(二十九)--文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习 我们继续学习File 一.文件递归 我们可以来实现 ...

  5. JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

    JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇 ...

  6. Django学习之十: staticfile 静态文件

    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方面 总结 Django学习之十: staticfile 静态文件 理解阐述     ...

  7. 使用springmvc进行文件的上传和下载

    文件的上传 SpringMVC支持文件上传组件,commons-fileupload,commons-fileupload依赖commons-io组件 配置步骤说明 第一步:导入包 commons-f ...

  8. SpringMVC之文件上传异常处理

    一般情况下,对上传的文件会进行大小的限制.如果超过指定大小时会抛出异常,一般会对异常进行捕获并友好的显示出来.以下用SpringMVC之文件上传进行完善. 首先配置CommonsMultipartRe ...

  9. C语言第十二讲,文件操作.

    C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件 ...

  10. springmvc实现文件上传

    springmvc实现文件上传 多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单就要满足以下3个条件 (1)form表彰的method属 ...

随机推荐

  1. Cesium中常用的一些地理数据文件 以及数据相关的东西

    KML Cesium.KmlDataSource.load CZML Cesium.CzmlDataSource.load GeoJson Cesium.GeoJsonDataSource.load ...

  2. Send me - PLANETSHAKERS

      Send me i will go 送我,我会去 send me i will go 送我,我会 to this city, to this nations 为这城市 为这国家 and to th ...

  3. office web apps 在线问答预览

    最近在做项目时,需要用到在线文档预览,看过明道的一篇搭建office web apps服务的文章,但是由于时间的关系,没有仔细研究,这几天有时间,就拿出来研究了下,折腾了几天终于完成了部署,然后就搬过 ...

  4. Oracle 存储过程—为数传递变量

    oracle 存储过程的基本语法create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 i ...

  5. Cookie的使用(js-cookie插件)

    js-cookie 官方文档 里面就详细的介绍了es5怎么引用,以下是ES6以上的用户 一.安装 npm install js-cookie --save 二.引用 import Cookies fr ...

  6. python 设计模式之状态模式

    1.为什么会出现状态模式? 在软件开发过程中,各种应用程序可能会根据不同的情况做出不同的处理.最直接的方案就是把所有的可能发生的情况都考虑到.然后使用条件语句(if...elseif...elseif ...

  7. ARM程序的RO段、RW段和ZI段 --Image

    Limit 含义了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别. ...

  8. myeclipse启动的过程中没提示就自动退出,闪退的有效解决方法

      今天遇到一个问题,已经打开myeclipse的电脑因为非正常关机后myeclipse打不开了,进度条进到十分之一就闪退,什么提示都没有的解决方案如下: 1.打开myeclipse工作空间(存放项目 ...

  9. LVS搭建负载均衡集群(一)——NAT模式

    (1).集群技术的分类 集群技术主要分为三大类:负载均衡(Load Balance)集群,简称LB集群:高可用(High Availability)集群,简称 HA 集群:高性能计算(High Per ...

  10. CentOS7下搭建zabbix监控(一)——Zabbix监控端配置

    zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位 ...