SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢。

不知不觉已经把Spring的基础部分讲解完了,所讲述的都是在项目中经常用到的东西,是经得住考验的,接下来的部分主要是要讲述使用SpringMVC进行的文件上传、处理Ajax请求、自定义拦截器功能的实现,不多说了,首先讲解文件上传部分,开始……

      主要步骤如下:

1. 需要使用apache-commons下得上传组件,需要引入两个jar包:

apache-commons-fileupload.jar、apache-commons-io.jar

2.  在Springmvc-servlet.xml配置文件中,增加CommonsMultipartResoler配置,如下:


<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >

<property name="defaultEncoding" value="gbk"/> <!-- 默认编码 (ISO-8859-1) -->

<property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)-->

<property name="uploadTempDir" value="/upload/"/> <!-- 文件暂存地址,不是最终的文件目录 -->

<property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) -->

</bean>

3.创建upload.jsp页面,内容如下:


<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>SpringMVC文件上传</title>

</head>

<body bgcolor="#d6e3f6">

<form action="upload.do" method="post" enctype="multipart/form-data">

<input type="file" name="file" />

<br/><input type="submit" />

</form>

</body>

</html>

4. 建立控制器,代码如下:


package  com.spring.controller;

import java.io.File;

import java.util.Date;

import javax.servlet.ServletContext;

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.context.ServletContextAware;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

@Controller

public  class  FileUploadController  implements  ServletContextAware {

private ServletContext servletContext;

@Override

public void setServletContext(ServletContext context) {

this.servletContext  = context;

}

//@RequestParam("file")一定要有

@RequestMapping(value="/upload.do")

public  String handleUploadData(@RequestParam("file")  CommonsMultipartFile file){

if (!file.isEmpty()) {

//获取本地存储路径

String path = this.servletContext.getRealPath("/uploadFile/");        System.out.println(path);

String fileName = file.getOriginalFilename();

String fileType = fileName.substring(fileName.lastIndexOf("."));

System.out.println(fileType);

//新建一个文件

File file2 = new File(path,new Date().getTime() + fileType);     try {

//将上传的文件写入新建的文件中

file.getFileItem().write(file2);

} catch (Exception e) {

e.printStackTrace();

return "redirect:upload_error.jsp";

}

return "redirect:upload_ok.jsp";

}else{

return "redirect:upload_error.jsp";

}

}

}

5. 建立upload_ok.jsp页面


<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

</head>

<body>

<h1>上传文件成功</h1>

</body>

</html>

6. 建立upload_error.jsp页面


<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

</head>

<body>

<h1>上传文件失败</h1>

</body>

</html>

7. 项目运行测试:

输入地址:http://localhost:8081/SpringMVC02/upload.jsp ,选择要上传文件,如下:

点击提交,上传成功返回成功界面:

进入项目发布后的上传文件路径(uploadFile文件夹下面),会发现上传的文件,如下:

SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】,布布扣,bubuko.com

时间: 2024-12-28 10:31:18

SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】的相关文章

3Python全栈之路系列之基于socket实现文件上传

Python全栈之路系列之基于socket实现文件上传 发布时间:2017年3月16日 00:04 浏览(106) 评论(0) 分类:Python 前言 此处没有前言 粘包 在实现发送文件功能之前我们先来理解下粘包的问题,下面有两张图,我觉得很清晰的就可以理解到了. 正常情况下发送文件 第一步: 客户端把获取到的文件总大小(size=65426)先放到缓冲区,然后发送给服务端 第二步: 此时客户端接收到的文件总大小就是65426 粘包的问题下发送文件 第一步: 客户端把获取到的文件总大小(siz

SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 到此为止,关于SpringMVC部分已经基本讲述完了,我所讲述的知识点都是在项目中能经常使用到的,所讲述项目代码都是经过验证的,可能个人的表述不是很到位,希望大家海涵,如果大家发现其中有问题可以随时联系我的邮箱,还是那句话,我发博文主要是为了分享自己的

SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这部分主要讲解SpringMVC的拦截器的部分,会带着大家完成定义拦截器的两种方式的实例,不多说了,开始-- SpringMVC的拦截器主要是用于拦截用户的请求,并且进行相应的处理,如:权限验证.判断登录等. 定义拦截器的两种方式,如下: 1. 实现接

SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这一部分主要讲解SpringMVC如何处理Ajax请求,是首先要讲解一下jackson类库,可以帮助我们在java对象和json.xml数据之间的互相转换.他可以将控制器返回的对象直接转换成json数据,供客户端使用,客户端也可以传送json数据到服务

SpringMVC 理论与实用技术(二)文件上传

文件上传相信大家都做过,几乎所有的项目都有上传文件的功能,尤其是BS架构的项目中常常被列为常规功能来开发,无论是在开发.NET 项目还是java项目我们会用到很多的框架,这个功能也被集成到了框架之中,因为他太常用了,框架就是为我们提供了一个开发项目的半成品结构,可以大大提高开发效率节省开发成本.缩短开发周期. 长话短说本文主要介绍一个怎么利用springmvc实现单个以及多个文件上传,附加说说上传文件的原理. 从具体的某个实例开始,先形似再神思 第一种方式设计思路:三个注意地方 1.表单页面 2

asp.net core系列 69 Amazon S3 资源文件上传示例

原文:asp.net core系列 69 Amazon S3 资源文件上传示例 一.  上传示例 Amazon Simple Storage Service 是互联网存储解决方案.该服务旨在降低开发人员进行网络规模级计算的难度. Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据.此服务让所有开发人员都能访问同一个具备高扩展性.可靠性.安全性和快速价廉的数据存储基础设施, Amazon 用它来运行其全球的网站网络.此服务旨在为开发人员

SpringMVC中采用简洁的配置实现文件上传

文件上传我们一般会有两种策略,一种是通过IO流上传,还有一种是通过表单上传,其实这两种在客户端实现起来都是很简单的,在服务端处理会略有差别,个人感觉IO上传代码简单,但是也有很多硬伤,还是表单上传更合适.特别是如果我们的后台程序如果既面向移动端,又面向Web前端,那么通过表单上传无疑是最佳解决方案.OK,废话不多说,我们来看看如何通过一个最简单的配置来实现文件的上传. 我们主要通过如下几个步骤来实现这个功能: 1.引入依赖 2.创建文件上传页面 3.配置SpringMVC 4.Web配置 5.编

Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载

上一篇专题Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信我们讲解了如何使用httpurlconnection来实现基本的文本数据传输.一般在实际开发中我们可以用于传输xml或者json格式的数据.今天我们来讲解另外一种http网络请求的方式:httpclient,并实现文件的上传和下载. 在这里插个题外话,其实这些网络请求有很多第三方jar包可以使用,这些包都封装得很好了.如果只是想使用,我们就直接拿别人得jar包来用就好.博主这里推荐一个叫xuti

2014.12.13 ASP.NET文件上传

一.文件上传:(一)上传到硬盘文件夹1.最简单的上传. [HTML代码] 1 <asp:FileUpload ID="FileUpload1" runat="server" /> 2 <asp:Button ID="Button1" runat="server" Text="上传" /> [C#代码] 1 //把相对路径,变成绝对路径 2 string path = Server.M