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

struts1上传文件(commons-fileupload)

    博客分类:
  • Java
阅读更多
  1. jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<base href="<%=basePath%>">
    
    		<title>My JSP 'index.jsp' starting page</title>
    		<meta http-equiv="pragma" content="no-cache">
    		<meta http-equiv="cache-control" content="no-cache">
    		<meta http-equiv="expires" content="0">
    		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    		<meta http-equiv="description" content="This is my page">
    		<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	</head>
    
    	<body>
    		<form action="toUploadFile.do" method="post" enctype="multipart/form-data">
    			<input type="file" name="file">
    			<input type="submit" value="upload">
    		</form>
    		${fileName }
    	</body>
    </html>
    
     
  2. struts-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    
    <struts-config>	
    	<action-mappings>
    		<action path="/toUploadFile"
            type="com.yqh.action.UploadAction"
            parameter="toUploadFile">
            	<forward name="uploadFile" path="/index.jsp"></forward>
            </action>
    	</action-mappings>
    </struts-config>
     
  3. UploadAction
    package com.yqh.action;
    
    import java.io.File;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.MappingDispatchAction;
    
    /**
     *上传文件
     */
    public class UploadAction extends MappingDispatchAction {
    	
    	private Log logger = LogFactory.getLog(UploadAction.class);
    	
    	public ActionForward toUploadFile(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		try {
    			String fileName = uploadFile(request);
    			
    			if (fileName == null) {
    				return mapping.findForward("InvalidFile");
    			}
    			request.setAttribute("fileName", fileName);
    			logger.info(" 执行了上传文件操作");
    			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return mapping.findForward("uploadFile");
    	}
    
    	private String uploadFile(HttpServletRequest request) {
    		String fileName = "";
    		try {
    
    			DiskFileItemFactory fc = new DiskFileItemFactory();
    			// 设置文件的最大限度,如果超出这个限度,则将文件写入磁盘
    			fc.setSizeThreshold(4000);
    			// 文件超过最大限度时,写入磁盘的临时路径
    			fc.setRepository(new File("c:\\tmp"));
    
    			ServletFileUpload fu = new ServletFileUpload(fc);
    			// 设置最大文件尺寸,单位为字节,这里是4MB
    			fu.setSizeMax(10194304);
    			
    			// 得到所有的文件
    			List fileItems = fu.parseRequest(request);
    			Iterator i = fileItems.iterator();
    			// 依次处理每一个文件
    			while (i.hasNext()) {
    				FileItem fi = (FileItem) i.next();
    				//获得文件名,这个文件名包括路径
    				fileName = fi.getName();
    				//限制文件类型
    //				if (!fileName.endsWith(".xls"))
    //					return null;
    				//限制文件大小
    //				if (fi.getSize() > 10194304)
    //					throw new RuntimeException("File is too large!");
    				fileName = fileName.substring(fileName.lastIndexOf("\\") + 1,
    						fileName.length());
    				// 写入文件
    				fi.write(new File("d:/upload/" + fileName));
    				System.out.println(fileName + " upload success");
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return fileName;
    	}
    }
    
     4.web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
       </servlet>
    
    
    
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    
    	<welcome-file-list>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    
     

 5.附件是所需要的jar包

  • lib.rar (1.5 MB)
  • 下载次数: 11
分享到:
评论

相关推荐

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    struts2上传文件需要的jar包 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    在Struts2中处理文件上传功能时,通常需要依赖两个关键的第三方库:`commons-fileupload`和`commons-io`。这两个jar包在Java文件上传处理中扮演着至关重要的角色。 `commons-fileupload-1.2.1.jar`是Apache Commons...

    struts2文件上传组件commons-fileupload-1.2.1.jar

    在Struts2中,文件上传功能是通过第三方库来实现的,其中最常用的就是Apache Commons FileUpload和Apache Commons IO。这里提到的"commons-fileupload-1.2.1.jar"和"commons-io-1.4.jar"就是这两个库的特定版本。 *...

    struts1.2和commons-fileupload实现文件上传

    Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...

    commons-fileupload及源码

    7. **与其他库的集成**:Apache Commons FileUpload可与Servlet API、Spring MVC、Struts等Web框架无缝集成,简化了在这些框架中实现文件上传的复杂性。 源码分析对于理解其内部工作原理非常有帮助。`commons-...

    commons-fileupload-1.3.2.jar

    总之,Apache Commons FileUpload是Java Web开发中处理文件上传不可或缺的工具,它提供了高效、灵活且安全的文件上传解决方案。通过理解和熟练运用这个库,开发者可以轻松地在自己的应用中实现复杂的文件上传功能。

    commons-fileupload-1.2.2-bin.zip

    7. **与Struts、Spring等框架的整合**:Commons FileUpload库可以轻松与主流的Java Web框架集成,如Struts、Spring MVC等,使得文件上传功能的实现更加便捷。 总的来说,Apache Commons FileUpload库是Java开发人员...

    commons-fileupload-1.2.jar commons-io-1.3.1.jar上传图片jar

    标题和描述中提到的"commons-fileupload-1.2.jar"和"commons-io-1.3.1.jar"是两个在Java开发中常用的开源库,主要用于处理文件上传功能。这两个库是Apache Commons项目的一部分,提供了丰富的文件操作和网络通信功能...

    commons-fileupload-1.3.3.zip

    此漏洞为FileUpload 库中的一个高危漏洞,这个库作为Apache Struts 2的一部分,被用作文件上传的默认机制。攻击者可以在未经授权的情况下,执行任意代码并可获取目标系统的所有权限。 CNVD对该漏洞的综合评级为...

    struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2

    以上就是关于Struts2中利用Apache Commons FileUpload和Apache Commons IO进行文件上传和下载的基本原理和实现流程。这两个库大大简化了处理文件操作的复杂性,提高了代码的可读性和可维护性。在实际开发中,应根据...

    commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar组件

    Apache Commons FileUpload与Apache Commons IO是Java开发中用于处理文件上传功能的重要库。这两个组件提供了高效、灵活且易于使用的API,使得在Web应用程序中接收和处理用户上传的文件变得非常简单。 **Apache ...

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

    这两个库通常与Struts1框架结合使用,以实现Web应用中的文件上传操作。 **Apache Commons FileUpload** Apache Commons FileUpload是Apache软件基金会的一个开源项目,提供了一套处理HTTP请求中多部分/表单数据的...

    struts,springMVC 上传文件需要的jar包 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    总的来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`这两个库在Struts和Spring MVC中扮演着关键角色,使得处理文件上传变得更加便捷和可靠。开发者可以通过这些库提供的API轻松实现文件上传功能,...

    (转)Struts的FormFile与Commons-FileUpload控件使用心得

    Struts的FormFile与Commons-FileUpload控件使用心得。

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

    总之,`commons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`在Struts2框架中扮演了重要的角色,为开发者提供了便捷且安全的文件上传功能。通过合理使用这两个库,我们可以构建出高效、稳定的文件上传系统。

    使用commons-fileupload实现的文件上传和下载

    在Java Web开发中,文件上传和下载是常见的功能需求,Apache Commons FileUpload库提供了一种高效、方便的方式来处理这些操作。本教程将详细介绍如何利用commons-fileupload库来实现在Java Web应用中的文件上传和...

    commons-fileupload.jar和commons-io-1.4.jar

    在这个场景中,"commons-fileupload.jar" 和 "commons-io-1.4.jar" 是实现Struts2文件上传的关键依赖库。 `commons-fileupload.jar` 是Apache Commons FileUpload组件的实现,它提供了一个简单而强大的API,用于...

    commons-fileupload-1.2.1帮助文档

    《Java Web文件上传:commons-fileupload-1.2.1详解》 在Java Web开发中,文件上传是一项常见的功能,用户可能需要上传图片、文档等各类文件。Apache Commons FileUpload库是一个强大的工具,用于处理HTTP协议中的...

    commons-fileupload-1.2.1.jar

    Apache Commons FileUpload库解决了这个问题,它提供了一套高级API,允许开发者以流式传输的方式处理上传的文件,从而避免内存溢出问题并支持大文件分块上传。 以下是一些关于`commons-fileupload`库的核心知识点:...

    commons-fileupload-1.2.2.jar和commons-io-2.2.jar(最简单的文件上传需要导入的jar包)

    struts2中用于文件上传的两个jar包,非常实用。最简单的文件上传,在做项目之前需要导入的jar包组件:commons-fileupload-1.2.2.jar、commons-io-2.2.jar(依赖包)

Global site tag (gtag.js) - Google Analytics