`

springmvc上传2

阅读更多
package com.dongly.upload;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

@Controller
public class UploadFile {

	/**
	 * 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
	 * 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
	 * 并且上传多个文件时,前台表单中的所有<input type="file"/>的name都应该是myfiles,
	 * 否则参数里的myfiles无法获取到所有上传文件
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping("/many")
	public String singleUploadFile(HttpServletRequest request, HttpServletResponse response) {
		// 创建一个通用的多部分解析器
		CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getServletContext());
		// 判断 request 是否有文件上传,即多部分请求
		if (commonsMultipartResolver.isMultipart(request)) {
			// 转换成多部分request
			MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) (request);
			// 取得request中的所有文件名
			Iterator<String> fileNames = multipartHttpServletRequest.getFileNames();
			while (fileNames.hasNext()) {
				String next = fileNames.next();
				// 取得上传文件
				MultipartFile file = multipartHttpServletRequest.getFile(next);
				// 判断文件是否为空,为空说明文件不存在
				if (!file.isEmpty()) {
					// 取得当前上传文件的文件名称
					String fileName = file.getOriginalFilename();
					
					String realPath = request.getServletContext().getRealPath("img");
					File path = new File(realPath,fileName);
					if (!path.exists()) {
						path.mkdirs();
					}
					try {
						file.transferTo(path);
						request.setAttribute("fileUrl", "img/" + fileName);
					} catch (IllegalStateException | IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
		return "batchUploadFile";
	}
	
	@RequestMapping("/two")
	public String two(@RequestParam("file1") MultipartFile[] file1,HttpServletRequest request, HttpServletResponse response) {
		
		for (MultipartFile multipartFile : file1) {
			if(!multipartFile.isEmpty()){
				// 取得当前上传文件的文件名称
				String fileName = multipartFile.getOriginalFilename();
				
				String realPath = request.getServletContext().getRealPath("img");
				File path = new File(realPath,fileName);
				if (!path.exists()) {
					path.mkdirs();
				}
				try {
					multipartFile.transferTo(path);
					request.setAttribute("fileUrl", "img/" + fileName);
				} catch (IllegalStateException | IOException e) {
					e.printStackTrace();
				}
			}
		}
				
		return "batchUploadFile";
	}
}

 

分享到:
评论

相关推荐

    springMVC 上传文件方式

    springMVC 上传文件方式springMVC 上传文件方式springMVC 上传文件方式

    springmvc上传jar包

    `springmvc上传jar包`这个主题主要关注如何在Spring MVC应用中实现文件上传,特别是使用`CommonsMultipartResolver`作为处理多部分请求的解析器。下面将详细讨论相关知识点。 首先,Spring MVC是Spring框架的一部分...

    springmvc上传文件controller,vue

    在Spring MVC框架中,文件上传是一项常见的功能,用于接收客户端发送的文件数据。Vue.js作为一个前端框架,可以很好地与Spring MVC结合,实现用户界面的交互和文件上传的处理。在这个项目中,我们将深入探讨如何使用...

    SpringMVC文件上传,多文件上传实例

    2. **SpringMVC的MultipartFile接口**: SpringMVC提供了一个`MultipartFile`接口,用于处理文件上传。这个接口封装了上传文件的基本信息,如文件名、大小、内容等。在控制器方法中,我们可以声明一个`...

    Springmvc上传文件.docx

    SpringMVC 上传文件详解 SpringMVC 框架中上传文件是非常常见的操作,今天我们来详细讲解 SpringMVC 中的文件上传过程。 文件上传的必要条件 在 SpringMVC 中,文件上传需要满足以下几个条件: 1. 表单的 ...

    SpringMVC上传文件 SSH上传文件

    本主题将深入探讨如何使用SpringMVC和SSH(Struts2 + Hibernate + Spring)框架来实现文件的上传与下载。 首先,我们来看SpringMVC中的文件上传。SpringMVC是Spring框架的一部分,它提供了强大的MVC设计模式支持,...

    springmvc带进度条上传源码

    在提供的"springmvc带进度条上传源码"中,可能包含了这些功能的实现,包括控制器、服务层、视图层以及前端的HTML、CSS和JavaScript文件。分析这些源码可以帮助你更好地理解文件上传和进度条显示的完整流程。如果你...

    尚硅谷SpringMVC上传文件

    在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传。但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的...

    springmvc上传文件所需jar包

    在标题和描述中提到的"springmvc上传文件所需jar包"是指为了在Spring MVC应用中支持文件上传,开发者需要引入特定的Java Archive (JAR) 文件。以下是关于这两个关键JAR包的详细解释: 1. `...

    springmvc上传文件到FTP

    在本文中,我们将深入探讨如何使用Spring MVC框架将文件上传至FTP服务器。Spring MVC是Spring框架的一个组件,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。FTP(File Transfer Protocol)则是一种用于在...

    springMVC 上传下载例子

    2. **上传文件** - **Controller**:在控制器类中,你可以使用`@RequestParam("file") MultipartFile file`注解来接收上传的文件。`MultipartFile`是Spring MVC提供的接口,用于处理多部分表单数据。 - **保存文件...

    springMVC图片上传示例

    2. 配置SpringMVC的MultipartResolver,如`CommonsMultipartResolver`,以处理文件上传。 3. 在控制器中,创建一个方法处理POST请求,接收`MultipartFile`和String参数。 4. 保存图片到服务器,可能需要将文件移动到...

    springMVC上传下载样例

    文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置...

    基于Springmvc的上传图片并生成缩略图

    在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...

    SpringMVC文件上传Demo代码

    在SpringMVC中实现文件上传是一项常见的任务,它允许用户通过表单将本地文件发送到服务器进行存储或处理。这个"SpringMVC文件上传Demo代码"是一个实例,演示了如何配置和使用SpringMVC来实现这一功能。 首先,我们...

    SpringMVC上传文件的四种方法

    2. **使用`CommonsMultipartResolver`解析器** Spring MVC还支持使用Apache Commons FileUpload库处理文件上传。在Spring配置中,需要添加`CommonsMultipartResolver`作为默认的多部分解析器: ```xml &lt;!-- ...

    SpringMVC+Ajax异步上传图片并显示(源码)

    在本文中,我们将深入探讨如何使用SpringMVC和Ajax实现异步上传图片并实时显示的功能。这个技术组合常用于Web应用开发中,提供流畅的用户体验,避免页面刷新带来的不便。 首先,SpringMVC是Spring框架的一部分,专...

    springMVC上传文件.zip_springmvc_上传文件_文件上传

    下面将详细阐述如何在SpringMVC中进行文件上传,并涵盖相关知识点。 1. **MultipartFile接口** SpringMVC提供了一个名为`MultipartFile`的接口,用于处理多部分表单数据中的文件部分。这个接口提供了获取文件名、...

    springmvc上传文件实时显示进度条

    在这个特定的项目"springmvc上传文件实时显示进度条"中,我们关注的是如何在文件上传过程中为用户展示进度信息,以提高用户体验。这个项目适用于那些需要处理大文件上传并希望提供反馈的Web应用。 首先,要实现文件...

    IDEA SpringMVC 实现文件的上传下载

    2. **文件上传**: 在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是Spring提供的一个解析多部分请求的组件。在配置文件中,我们需要添加如下配置启用文件上传: ```xml &lt;!-- 指定最大上传...

Global site tag (gtag.js) - Google Analytics