`

java中的文件上傳

    博客分类:
  • java
 
阅读更多




[Java] Spring2文件上传实例 [复制链接]

   


项目结构视图:
未命名.jpg
web.xml文件内容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <servlet>
  7.   <servlet-name>spring-action</servlet-name>
  8.   <servlet-class>
  9.    org.springframework.web.servlet.DispatcherServlet
  10.   </servlet-class>
  11.   <load-on-startup>1</load-on-startup>
  12. </servlet>
  13. <servlet-mapping>
  14.   <servlet-name>spring-action</servlet-name>
  15.   <url-pattern>*.mhtml</url-pattern>
  16. </servlet-mapping>
  17. <welcome-file-list>
  18.   <welcome-file>testuploadfile.jsp</welcome-file>
  19. </welcome-file-list>
  20. </web-app>
复制代码

spring-action-servlet.xml文件内容:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  5. <!--
  6. 使用Spring已集成的Commons FileUpload上传组件。
  7. 1.为了让DispatcherServlet处理MultipartRequest,
  8. 在Spring配置文件中声明一个MultipartResolver。
  9. 这样一旦某个Request是一个MultipartRequest,
  10. 它就会首先被MultipartResolver处理,然后再转发到相应的Controller。
  11. -->
  12. <bean id="multipartResolver"
  13.   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  14.   <!-- set the max upload size10MB -->
  15.   <property name="maxUploadSize">
  16.    <value>10485760</value>
  17.   </property>
  18. </bean>
复制代码

  1. <!--
  2. 2.配置一个Controller,来处理上传的文件。
  3. -->
  4. <bean name="fileUploadController" autowire-candidate="false"
  5.   class="test.web.controller.uploadfile.FileUploadController">
  6.   <property name="commandClass" value="java.lang.Object" />
  7.   <!-- 上传失败时跳转页面 -->
  8.   <property name="formView" value="/user/err.jsp" />
  9.   <!-- 上传成功时跳转页面 -->
  10.   <property name="successView"
  11.    value="redirect:/testuploadfile.jsp" />
  12.   <property name="uploadDir" value="c:/testUploadFile/" />
  13. </bean>
复制代码
  1. <!--
  2. 3.配置一个URL映射控制器,直接将URL映射到相应的控制器处理。
  3. -->
  4. <bean id="urlMapping"
  5.   class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  6.   <property name="mappings">
  7.    <props>
  8.     <prop key="/testuploadfile.mhtml">
  9.      fileUploadController
  10.     </prop>
  11.    </props>
  12.   </property>
  13. </bean>
复制代码
  1. <!--
  2. 4.配置一个视图解析器,将逻辑视图名解析为一个用模板文件(如JSP或Velocity模板)渲染的视图对象。
  3. -->
  4. <bean id="viewResolver"
  5.   class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  6.   <property name="requestContextAttribute" value="rc" />
  7.   <property name="viewClass"
  8.    value="org.springframework.web.servlet.view.JstlView" />
  9.   <property name="prefix" value="" />
  10.   <property name="suffix" value=".jsp" />
  11. </bean>
  12. </beans>
复制代码

FileUploadController.java文件内容:
  1. package test.web.controller.uploadfile;
  2. import java.io.File;
  3. import java.util.Iterator;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.springframework.validation.BindException;
  7. import org.springframework.web.multipart.MultipartFile;
  8. import org.springframework.web.multipart.MultipartHttpServletRequest;
  9. import org.springframework.web.servlet.ModelAndView;
  10. import org.springframework.web.servlet.mvc.SimpleFormController;
  11. public class FileUploadController extends SimpleFormController {
  12. private String uploadDir;//上传文件路径
  13. public void setUploadDir(String uploadDir) {
  14.   this.uploadDir = uploadDir;
  15. }
  16. public String getUploadDir() {
  17.   return this.uploadDir;
  18. }
  19. protected ModelAndView onSubmit(HttpServletRequest request,
  20.    HttpServletResponse response, Object cmd, BindException errors)
  21.    throws Exception {
  22.   uploadFile(request);
  23.   return new ModelAndView(getSuccessView());
  24. }
  25. private void uploadFile(HttpServletRequest request) {
  26.   // 转型为MultipartHttpRequest:
  27.   MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  28.   // 遍历所有文件域,获得上传的文件
  29.   for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
  30.    String key = (String) it.next();
  31.    MultipartFile file = multipartRequest.getFile(key);
  32.    saveFile(file);
  33.   }
  34. }
  35. private void saveFile(MultipartFile file) {
  36.   if (file == null || file.isEmpty())
  37.    return;
  38.   String filename = file.getOriginalFilename();
  39.   String localfileName = uploadDir + filename;
  40.   // 写入文件
  41.   File source = new File(localfileName.toString());
  42.   try {
  43.    file.transferTo(source);
  44.   } catch (Exception e) {
  45.    e.printStackTrace();
  46.   }
  47. }
  48. }
复制代码

testuploadfile.jsp文件内容:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5.   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.   <title>Insert title here</title>
  7.   <style>
  8.    .addAttachFileUrl{
  9.     position: relative;
  10.     font-size: 12px;
  11.    }
  12.    .file {
  13.     position: absolute;
  14.     width: 1px;
  15.     left: -3px;
  16.     filter: Alpha(opacity=0);
  17.     cursor: hand;
  18.     top: -3px;
  19.    }
  20.    .filelistItem {
  21.     display: block;
  22.     background: #ffffcc;
  23.     font: "宋体";
  24.     font-size: 12px;
  25.    }
  26.   </style>
  27.   <script type="text/javascript">
  28.     var i=1;
  29.     //文件上传
  30.     var attachname = "attach_";
  31.     function addFile(obj){
  32.      if(obj.value.length>0){
  33.       var fileNewInput = document.createElement("<input type='file' name='"+
  34.       attachname + i + "' class='file' onchange='addFile(this)'/>");
  35.       var fileName = document.createElement("span");
  36.       fileName.className = "filelistItem";
  37.       fileName.innerHTML = obj.value+
  38.       "  <a href='javascript:void(0)' onclick='delFile(this)'>删除</a>";
  39.       fileName.appendChild(obj);
  40.       document.getElementById("filelist").appendChild(fileName);
  41.       document.getElementById("filebutton").appendChild(fileNewInput)
  42.       obj.style.display="none";
  43.       i = i + 1;
  44.      }
  45.     }
  46.     function delFile(obj){
  47.      document.getElementById("filelist").removeChild(obj.parentNode)
  48.     }
  49.      </script>
  50. </head>
  51. <body>
  52.   <FORM id="myForm" method="POST" enctype="multipart/form-data"
  53.   action="testuploadfile.mhtml">
  54.    上传附件:
  55. <div id="filelist"></div>
  56.    <br />
  57.    <a class="addAttachFileUrl" href="javascript:void(0)" id="filebutton">点击添加附件
  58.     <input type="file" name="file_0" class="file"
  59.      onchange="addFile(this)" /> </a>
  60.    <br />
  61.    <input type="submit" value="提交">
  62.   </FORM>
  63. </body>
  64. </html>
复制代码

分享到:
评论

相关推荐

    java中文件上传实例

    在Java编程中,文件上传是一项常见的任务,尤其在开发Web应用程序时,如用户需要上传个人头像、上传文档等。本教程将详细讲解如何在Java中实现文件上传功能,包括处理图片和文本文件。 首先,我们需要理解文件上传...

    Java中文件的上传和下载

    在Java中,文件上传和下载是常见的Web应用功能,尤其在处理用户提交的表单数据时,例如上传图片。在本示例中,我们将探讨如何实现一个简单的文件上传功能,并展示相关的HTML页面代码和Java后端处理代码。 首先,...

    java文件异步上传

    Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序...

    java多文件上传实现

    在Java开发中,多文件上传是一项常见的功能,尤其在Web应用中,用户可能需要一次性上传多个文件,如图片、文档等。本知识点将详细介绍如何在Java中实现这一功能,以及结合Flash实现上传界面并显示上传进度条。 1. *...

    java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类

    java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件...

    java多文件上传

    首先,我们来看“java文件上传”这个知识点。Java提供了多种方法来处理文件上传,最常见的是使用Servlet API中的Part接口,这是Java EE 7引入的,专门用于处理multipart/form-data类型的HTTP请求,也就是通常用于...

    java图形化实现文件上传_javagui上传文件,gui编写上传下载文件功能-Java文档类资源

    利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...

    java实现文件批量上传

    首先,我们需要理解Java中的文件上传机制。在Java Servlet规范中,`multipart/form-data`类型的HTTP请求用于处理文件上传。`javax.servlet.http.Part`接口提供了处理上传文件的方法。通常,我们使用Servlet 3.0及...

    java大文件上传

    Java中的`Commons-FileUpload`库是处理文件上传的常用工具,它可以处理`multipart/form-data`格式的请求,支持分块上传。为了处理大文件,我们需要自定义一个`FileItemFactory`和`ServletFileUpload`实例,并设置`...

    Java Spring文件上传,Java文件上传,Java通用文件上传

    在Java Spring框架中,文件上传是一项常见的功能,用于接收用户通过Web界面提交的文件。Spring提供了强大的MultipartFile接口,使得处理文件上传变得简单且高效。本文将深入探讨如何使用Java和Spring实现文件上传,...

    Java大文件上传

    在Java开发中,大文件上传是一项常见的需求,尤其是在Web应用中。大文件上传不仅涉及到文件的传输,还需要考虑用户体验,如进度条展示,以及服务器端的处理能力。在这个场景下,DWР(Direct Web Remoting)框架是一...

    java上传文件jar

    总之,Apache Commons IO和Apache Commons FileUpload是Java开发中处理文件上传不可或缺的工具。它们提供了丰富的功能,帮助开发者安全、高效地完成文件上传操作,同时也大大减少了处理文件上传时可能出现的问题。在...

    java 实现大文件上传

    #### 二、常见的Java文件上传组件及其特点 1. **Smartupload**: - **优点**:出现较早,有一定的社区支持。 - **缺点**:不再更新新版本;支持的最大文件大小有限(约100MB),无法满足部分高需求场景。 2. **...

    java 文件上传工具类 java 文件上传工具类

    java 文件上传工具类 java 文件上传工具类java 文件上传工具类 java 文件上传工具类java 文件上传工具类 java 文件上传工具类java 文件上传工具类 java 文件上传工具类java 文件上传工具类 java 文件上传工具类java ...

    基于JAVA文件上传

    在Java编程语言中,文件上传是一项常见的功能,广泛应用于各种Web应用中,如社交媒体平台、云存储服务等。实现基于Java的文件上传涉及到多个技术点,包括Servlet、HTTP协议、多部分请求(Multipart Request)以及...

    java实现上传文件类型检测过程解析

    Java 实现上传文件类型检测过程解析是指在进行文件上传时,对上传文件的格式进行控制,以防止黑客将病毒脚本上传。单纯的将文件名的类型进行截取的方式非常容易遭到破解,上传者只需要将病毒改换文件名便可以完成...

    Java上传下载文件操作用到的jar

    在Java开发中,文件上传和下载是常见的任务,特别是在构建Web应用程序时。为了实现这些功能,开发者通常会依赖一些库,这些库提供了便捷的API来处理文件操作。在这个压缩包中,包含的“commons”系列jar文件就是用来...

    JAVA SFTP文件上传、下载及批量下载实例

    在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure File Transfer Protocol)是一种安全的...

    java图形化实现文件上传

    (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 (2)单击“上传服务器”窗口中的“启动服务..”按钮。 (3)单击“上传...

    性能最好的Java文件上传组件

    在这个场景中,我们提到了基于"COS"的Java文件上传组件。COS通常指的是云对象存储(Cloud Object Storage),如腾讯云的对象存储服务,它为开发者提供了安全、稳定、高效的存储解决方案。 文件上传组件在Java中扮演...

Global site tag (gtag.js) - Google Analytics