`
843977358
  • 浏览: 246750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Spring MVC项目(maven)中通过fileupload上传文件

阅读更多

Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。

 

1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar

因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定)

<!-- 文件上传 start by zhangyd-c -->
<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>
<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.4</version>
</dependency>
<!-- 文件上传 end -->

 2.获取文件信息

/**
	 * 头像 根据Id生成存储目录
	 * @param file
	 * @param userId
	 * @param request
	 * @param response
	 * @throws IOException  
	 * @return void
	 * @throws
	 */
	@RequestMapping("/updateLogo")
	public String updateLogo(
			@RequestParam(value = "upload-file") MultipartFile file,
			@RequestParam String id, HttpServletRequest request,String base64Char,
			HttpServletResponse response) throws IOException {
		response.setContentType("text/html;charset=UTF-8");
		String fileName = file.getOriginalFilename();
		String fileFormat = fileName.substring(fileName.lastIndexOf("."));
		UUID uid = UUID.randomUUID(); 
		String newFileName = uid.toString() + fileFormat;
		String filePath = null;
		//base64Char 为剪切后的 base64位的字符串,如果不为空说明图片被剪切了①
		if(base64Char == null || "".equals(base64Char)){
			// 根据用户id获取创建上传目录
			filePath = FileUtils.getFilePath(id);②
			File descfile = new File(filePath, newFileName);// 文件路径文件名
			FileUtils.copyInputStreamToFile(file.getInputStream(), descfile);// 开始上传
		}else{
			filePath = this.userDetailsService.GenerateImage(base64Char, id,newFileName);③
		}
		//此处将图片信息保存到数据库(省略......)
		return "redirect:/userhome/home";
	}

 3.如果认为只是这样就完了的话, 那就错了 ,你的程序一定跑不起来,MultipartFile这个接口 需要在spring的配置文件中配置,加入

org.springframework.web.multipart.commons.CommonsMultipartResolver

<!-- 配置上传文件的限制信息 by zhangyd-c -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
		<!-- 默认最大不超过2M -->
    	<property name="maxUploadSize" value="2097152" />  
	</bean>

 这样就ok 了,

因为我这个功能上传用户头像,因此就包含剪切后的图像获取,所以中间穿插了一些其他知识点(①②③),具体内容下次整理了发上。。

分享到:
评论

相关推荐

    Spring MVC所需jar包

    6. **Apache Commons**:Spring MVC 开发中可能会用到 Apache Commons 的一些工具库,例如 `commons-logging.jar` 用于日志记录,`commons-fileupload.jar` 用于文件上传,`commons-lang3.jar` 提供了一些实用的 ...

    Spring MVC实现文件的上传和下载

    在本文中,我们将深入探讨如何利用Spring MVC实现在Web应用中进行文件的上传与下载。 首先,我们需要理解Spring MVC中的两个核心组件:Model、View和Controller。Controller接收用户请求,处理业务逻辑,然后将结果...

    Spring mvc工程所需jar包资源

    13. **commons-fileupload.jar**: 用于处理HTTP文件上传请求,如果你的Spring MVC应用需要接收用户的文件上传,这个库是必不可少的。 14. **commons-lang3.jar**: Apache Commons Lang库,提供了很多Java语言工具类...

    commons-fileupload实现文件上传

    创建一个Servlet或者Spring MVC的Controller,用于接收文件上传请求。在doPost或相应的处理方法中,初始化FileUpload对象。 3. **解析请求** 使用`ServletFileUpload`类解析请求,这一步会将多部分数据转换为可...

    SpringMVC之表单提交===③===多文件上传表单

    在Spring MVC框架中,表单提交是Web应用中常见的功能之一,特别是在处理用户上传文件时。本篇将详细探讨如何实现多文件上传表单的功能,同时也会涉及到一些相关的源码和工具使用。 首先,让我们从基础开始。Spring ...

    spring mvc实现文件上传并携带其他参数的示例

    在Spring MVC框架中,文件上传是一项常见的功能,它允许用户通过表单提交文件,并将这些文件与其他参数一起处理。在本文中,我们将深入探讨如何在Spring MVC中实现这个功能,同时携带其他参数。 首先,我们需要引入...

    Spring Mvc 应用Jar包

    - 压缩包中可能包含了`commons-fileupload.jar`和`commons-io.jar`:这两个Apache Commons库提供了处理HTTP请求中文件上传的功能,Spring MVC通过它们来支持文件上传操作。 4. **日志库** - 虽然提到无需导入...

    commons-fileupload文件上传实例

    Apache Commons FileUpload是Java中处理文件上传的一个强大库,它简化了这一过程。本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** ...

    java中common-fileupload 上传文件demo

    在Java开发中,文件上传是一项常见的任务,尤其是在构建Web应用时。`Commons FileUpload`是Apache Commons项目的一部分,它为处理...通过研究提供的"文件上传demo",你可以更好地理解和应用这些概念到自己的项目中。

    Spring MVC 需要的jar包

    以上JAR包是Spring MVC开发中的基础,但实际项目可能还需要根据具体需求引入其他依赖,例如数据库驱动、MyBatis、JUnit等。在开发过程中,通常会使用构建工具(如Maven或Gradle)来自动化管理和下载这些依赖,以确保...

    使用maven实现web端上传和下载功能,并配有logback日志

    本项目通过使用Maven构建工具,结合Spring MVC框架,实现了前端上传文件到服务器和从服务器下载文件的功能,并利用Logback日志系统进行详细的运行记录。下面将详细介绍这个过程中的关键知识点。 一、Maven的使用 ...

    File 转 MultipartFile 和MultipartFile的maven配置

    在Spring MVC中,你可以通过`@RequestParam("file") MultipartFile multipartFile`注解来接收上传的文件。然后,你可以使用`MultipartFile`提供的方法如`getBytes()`、`getOriginalFilename()`等来处理文件。 ```...

    一个简单的使用commons-fileupload包上传文件的例子

    在生产环境中,还应考虑使用更安全的方式处理文件上传,如使用Spring MVC或类似框架的文件上传支持。 总的来说,`commons-fileupload`和`commons-io`为Java Web开发者提供了方便、灵活的文件上传解决方案。通过学习...

    fileupload文件上传代码及jar包

    5. **易于集成**:它可以轻松地与Spring MVC、Struts等Web框架集成,提供无缝的文件上传支持。 这个压缩包中可能包含的文件有: - `fileupload`代码示例:这是一段展示如何使用Apache Commons FileUpload库的Java...

    SpringMVC 头像文件上传

    在这个“SpringMVC 头像文件上传”的项目中,我们看到它与Spring、Hibernate和Maven一起使用,这是一套经典的Java后端开发栈,通常被称为SSH(Spring、Struts、Hibernate)。不过,Struts在这里可能被理解为Spring的...

    java文件上传 FileUpload

    此外,现代Web框架(如Spring MVC)通常提供了更高级的文件上传支持,可以直接集成到现有的控制器中。 通过以上步骤,你就可以使用Apache Commons FileUpload库在Java Web应用中实现文件上传功能。这是一个基础的...

    commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    在Java Web开发中,文件上传是一项常见的功能,Spring MVC作为流行的MVC框架,提供了解决这一问题的强大支持。然而,为了实现文件上传,Spring MVC依赖于一些外部库,其中包括"commons-fileupload-1.2.1.jar"和...

    java文件上传下载

    总的来说,文件上传和下载是Java Web开发中重要的功能,通过`commons-fileupload`和Spring MVC的集成,我们可以方便地实现文件上传,而Servlet则可以帮助我们实现文件的下载功能。在实际应用中,还需要考虑安全性、...

Global site tag (gtag.js) - Google Analytics