- 浏览: 61573 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
2006204shao:
引用引用[u][/u][img][/img][flash= ...
asm.jar包冲突 -
pchen:
如果使用1,批量上传如何?
Struts 文件上传(UpLoad) -
XiAoOMAn07:
学习了
接口详解 -
crazycode:
你使用的删除数据的代码是什么,放上来看一下。
Hibernate一个搞人问题 -
deepspring:
确实,解决了,刚才不行原来是大小写的原因。。。
No CurrentSessionContext configured错误
刚刚做了三个文件上传的Demo
a.在jsp中简单利用Commons-fileupload组件实现
b.在struts1.2中实现
c.在sturts2中实现
现在把Code与大家分享一下..
注:此为三个简单Demo,仅供练习用,并没有做太多上传限制
如有兴趣可以自行查看相关文档说明
一.在JSP环境中利用Commons-fileupload组件实现文件上传
1.页面upload.jsp清单如下:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>The FileUpload Demo</title>
- </head>
- <body>
- <form action="UploadFile" method="post" enctype="multipart/form-data">
- <p><input type="text" name="fileinfo" value="">文件介绍</p>
- <p><input type="file" name="myfile" value="浏览文件"></p>
- <p><input type="submit" value="上 传"></p>
- </form>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>The FileUpload Demo</title> </head> <body> <form action="UploadFile" method="post" enctype="multipart/form-data"> <p><input type="text" name="fileinfo" value="">文件介绍</p> <p><input type="file" name="myfile" value="浏览文件"></p> <p><input type="submit" value="上 传"></p> </form> </body> </html>
注意:在上传表单中,既有普通文本域也有文件上传域
2.FileUplaodServlet.java清单如下:
- package org.chris.fileupload;
- import java.io.File;
- import java.io.IOException;
- import java.util.Iterator;
- import java.util.List;
- import javax.servlet.ServletException;
- import javax.servlet.http.*;
- import org.apache.commons.fileupload.FileItem;
- import org.apache.commons.fileupload.FileItemFactory;
- import org.apache.commons.fileupload.disk.DiskFileItemFactory;
- import org.apache.commons.fileupload.servlet.ServletFileUpload;
- public class FileUplaodServlet extends HttpServlet {
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- doPost(request, response);
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.setCharacterEncoding("UTF-8");
- //文件的上传部分
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- if(isMultipart)
- {
- try {
- FileItemFactory factory = new DiskFileItemFactory();
- ServletFileUpload fileload = new ServletFileUpload(factory);
- // 设置最大文件尺寸,这里是4MB
- fileload.setSizeMax(4194304);
- List<FileItem> files = fileload.parseRequest(request);
- Iterator<FileItem> iterator = files.iterator();
- while(iterator.hasNext())
- {
- FileItem item = iterator.next();
- if(item.isFormField())
- {
- String name = item.getFieldName();
- String value = item.getString();
- System.out.println("表单域名为: " + name + "值为: " + value);
- }else
- {
- //获得获得文件名,此文件名包括路径
- String filename = item.getName();
- if(filename != null)
- {
- File file = new File(filename);
- //如果此文件存在
- if(file.exists()){
- File filetoserver = new File("d:\\upload\\",file.getName());
- item.write(filetoserver);
- System.out.println("文件 " + filetoserver.getName() + " 上传成功!!");
- }
- }
- }
- }
- } catch (Exception e) {
- System.out.println(e.getStackTrace());
- }
- }
- }
- }
package org.chris.fileupload; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.*; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUplaodServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //文件的上传部分 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if(isMultipart) { try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload fileload = new ServletFileUpload(factory); // 设置最大文件尺寸,这里是4MB fileload.setSizeMax(4194304); List<FileItem> files = fileload.parseRequest(request); Iterator<FileItem> iterator = files.iterator(); while(iterator.hasNext()) { FileItem item = iterator.next(); if(item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); System.out.println("表单域名为: " + name + "值为: " + value); }else { //获得获得文件名,此文件名包括路径 String filename = item.getName(); if(filename != null) { File file = new File(filename); //如果此文件存在 if(file.exists()){ File filetoserver = new File("d:\\upload\\",file.getName()); item.write(filetoserver); System.out.println("文件 " + filetoserver.getName() + " 上传成功!!"); } } } } } catch (Exception e) { System.out.println(e.getStackTrace()); } } } }
3.web.xml清单如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>UploadFileServlet</servlet-name>
- <servlet-class>
- org.chris.fileupload.FileUplaodServlet
- </servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>UploadFileServlet</servlet-name>
- <url-pattern>/UploadFile</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>/Index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>UploadFileServlet</servlet-name> <servlet-class> org.chris.fileupload.FileUplaodServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadFileServlet</servlet-name> <url-pattern>/UploadFile</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/Index.jsp</welcome-file> </welcome-file-list> </web-app>
二.在strut1.2中实现
1.上传页面file.jsp 清单如下:
- <%@ page language="java" pageEncoding="ISO-8859-1"%>
- <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
- <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
- <html>
- <head>
- <title>JSP for FileForm form</title>
- </head>
- <body>
- <html:form action="/file" enctype="multipart/form-data">
- <html:file property="file1"></html:file>
- <html:submit/><html:cancel/>
- </html:form>
- </body>
- </html>
<%@ page language="java" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <html> <head> <title>JSP for FileForm form</title> </head> <body> <html:form action="/file" enctype="multipart/form-data"> <html:file property="file1"></html:file> <html:submit/><html:cancel/> </html:form> </body> </html>
2.FileAtion.java的清单如下:
- /*
- * Generated by MyEclipse Struts
- * Template path: templates/java/JavaClass.vtl
- */
- package action;
- import java.io.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.apache.struts.upload.FormFile;
- import form.FileForm;
- /**
- * @author Chris
- * Creation date: 6-27-2008
- *
- * XDoclet definition:
- * @struts.action path="/file" name="fileForm" input="/file.jsp"
- */
- public class FileAction extends Action {
- /*
- * Generated Methods
- */
- /**
- * Method execute
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
- */
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- FileForm fileForm = (FileForm) form;
- FormFile file1=fileForm.getFile1();
- if(file1!=null){
- //上传路径
- String dir=request.getSession(true).getServletContext().getRealPath("/upload");
- OutputStream fos=null;
- try {
- fos=new FileOutputStream(dir+"/"+file1.getFileName());
- fos.write(file1.getFileData(),0,file1.getFileSize());
- fos.flush();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }finally{
- try{
- fos.close();
- }catch(Exception e){}
- }
- }
- //页面跳转
- return mapping.findForward("success");
- }
- }
】
3.FileForm.java的清单如下:
- package form;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.struts.action.ActionErrors;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionMapping;
- import org.apache.struts.upload.FormFile;
- /**
- * @author Chris
- * Creation date: 6-27-2008
- *
- * XDoclet definition:
- * @struts.form name="fileForm"
- */
- public class FileForm extends ActionForm {
- /*
- * Generated Methods
- */
- private FormFile file1;
- /**
- * Method validate
- * @param mapping
- * @param request
- * @return ActionErrors
- */
- public ActionErrors validate(ActionMapping mapping,
- HttpServletRequest request) {
- // TODO Auto-generated method stub
- return null;
- }
- /**
- * Method reset
- * @param mapping
- * @param request
- */
- public void reset(ActionMapping mapping, HttpServletRequest request) {
- // TODO Auto-generated method stub
- }
- public FormFile getFile1() {
- return file1;
- }
- public void setFile1(FormFile file1) {
- this.file1 = file1;
- }
- }
package form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; /** * @author Chris * Creation date: 6-27-2008 * * XDoclet definition: * @struts.form name="fileForm" */ public class FileForm extends ActionForm { /* * Generated Methods */ private FormFile file1; /** * Method validate * @param mapping * @param request * @return ActionErrors */ public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub return null; } /** * Method reset * @param mapping * @param request */ public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub } public FormFile getFile1() { return file1; } public void setFile1(FormFile file1) { this.file1 = file1; } }
4.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>
- <data-sources />
- <form-beans >
- <form-bean name="fileForm" type="form.FileForm" />
- </form-beans>
- <global-exceptions />
- <global-forwards />
- <action-mappings >
- <action
- attribute="fileForm"
- input="/file.jsp"
- name="fileForm"
- path="/file"
- type="action.FileAction"
- validate="false">
- <forward name="success" path="/file.jsp"></forward>
- </action>
- </action-mappings>
- <message-resources parameter="ApplicationResources" />
- </struts-config>
<?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> <data-sources /> <form-beans > <form-bean name="fileForm" type="form.FileForm" /> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="fileForm" input="/file.jsp" name="fileForm" path="/file" type="action.FileAction" validate="false"> <forward name="success" path="/file.jsp"></forward> </action> </action-mappings> <message-resources parameter="ApplicationResources" /> </struts-config>
5.web.xml代码清单如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.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>
- <init-param>
- <param-name>debug</param-name>
- <param-value>3</param-value>
- </init-param>
- <init-param>
- <param-name>detail</param-name>
- <param-value>3</param-value>
- </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- </web-app>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.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> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
三.在struts2中实现(以图片上传为例)
1.FileUpload.jsp代码清单如下:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <head>
- <title>The FileUplaodDemo In Struts2</title>
- </head>
- <body>
- <s:form action="fileUpload.action" method="POST" enctype="multipart/form-data">
- <s:file name="myFile" label="MyFile" ></s:file>
- <s:textfield name="caption" label="Caption"></s:textfield>
- <s:submit label="提交"></s:submit>
- </s:form>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>The FileUplaodDemo In Struts2</title> </head> <body> <s:form action="fileUpload.action" method="POST" enctype="multipart/form-data"> <s:file name="myFile" label="MyFile" ></s:file> <s:textfield name="caption" label="Caption"></s:textfield> <s:submit label="提交"></s:submit> </s:form> </body> </html>
2.ShowUpload.jsp的功能清单如下:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <head>
- <title>ShowUpload</title>
- </head>
- <body>
- <div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >
- <img src ='UploadImages/<s:property value ="imageFileName"/> '/>
- <br />
- <s:property value ="caption"/>
发表评论
-
接口详解
2009-08-08 12:07 1074接口是把隐式公共方法和属性组合起来,以封 ... -
改写equals时总是要改写hashCode
2008-08-14 14:59 1602改写equals时总是要改写h ... -
sitemesh装饰页面
2008-08-03 05:09 1768步骤: 1,引入sitemesh的jar包 2,引入strut ... -
Struts标签学习
2008-07-18 22:18 0在建立建立一个web项目的时候,要注意项目的层次结构,在一个项 ... -
Struts实现多文件上传
2008-07-18 11:17 1265jsp文件 <%@ page language=&quo ... -
Struts1.x学习
2008-07-15 21:48 1029Struts实现的MVC框架 Struts1.x执行的顺 ...
相关推荐
首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List<FileInfo>`类型的字段,用于接收上传的文件...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Struts框架实现文件上传功能。这是一个在Web开发中常见的需求,特别是在处理用户提交的数据时。Struts是一个基于MVC(Model-View-Controller)设计模式的...
Struts 使用`org.apache.struts.upload`包中的组件来处理文件上传。主要涉及以下类: - `MultiPartRequestHandler`: 这是Struts的核心类,它解析多部分HTTP请求(即包含文件的请求)。 - `FormFile`: 用于封装上传...
### Struts文件上传知识点 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,它简化了基于Java的Web应用程序开发过程。Struits框架提供了一种结构化的方式来组织代码,使得开发更加...
在Struts框架中,文件上传功能是一个常见的需求,特别是在处理用户提交的表单数据时,比如用户上传照片、文档等。`struts-fileupload` JAR包就是用于支持Struts框架中文件上传操作的关键组件。 文件上传功能在Web...
Struts2-upload-jar是Apache Struts框架的一个插件,主要功能是支持文件上传和下载。Struts2作为Java EE领域中的一个流行MVC(Model-View-Controller)框架,为开发者提供了处理用户请求、展示视图以及业务逻辑集成...
### Struts2.0 文件上传知识点详解 #### 一、Struts2 文件上传概述 **Struts2** 是一个基于 **MVC(Model-View-Controller)** 架构模式的开源框架,它广泛应用于Java Web应用程序的开发。在Struts2中,文件上传是...
在本"基于Struts的文件上传下载源代码"中,我们可以深入理解Struts如何处理文件上传和下载操作,这对于初学者来说是一个非常实用的学习资源。 首先,文件上传在Web应用中是常见的功能,它允许用户从本地计算机选择...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件,或者允许用户从服务器下载文件。这些功能极大地增强了Web应用的交互性和实用性。 在Struts2中实现文件上传,主要涉及到以下几...
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...
在IT行业中,jQuery、Struts2和Upload是三个非常重要的技术概念,它们分别代表了JavaScript库、Java Web框架以及文件上传功能。这篇文章将详细解析这三个技术的结合使用,以"jquery+struts2+upload"为例,探讨如何...
在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...
在Struts2中,文件上传是一个常见的功能,它允许用户通过Web表单上传文件到服务器。在本篇文章中,我们将深入探讨Struts2的文件上传机制、所需的配置、以及如何创建一个简单的上传案例。 ### Struts2文件上传的基本...
### Struts 1.2 下实现文件上传进度条的关键知识点 #### 一、背景与目的 在基于Struts 1.2的Web应用中,实现文件上传时常常需要提供一个友好的用户界面来显示文件上传进度。这不仅提高了用户体验,还能够实时反馈...
在给定的"struts upload 包及源码"中,重点是Struts2的文件上传功能。这个功能允许用户通过Web表单上传文件到服务器,对于处理图像、文档和其他用户生成的内容至关重要。在描述中提到的"upload源码和jar包及io包"指...
Struts2Upload是一个基于Struts2框架的文件上传示例,它展示了如何在Java Web应用程序中处理文件上传请求。Struts2是一个强大的MVC(Model-View-Controller)框架,广泛用于构建企业级Web应用。文件上传是Web开发中...
首先,你需要在Struts2配置文件(通常为struts.xml)中启用文件上传支持,这通常意味着添加`<constant name="struts.multipart.parser" value="jakarta"/>`配置,以确保框架能够解析multipart/form-data类型的请求,...
在本项目“struts文件上传(web project)”中,核心关注点在于如何实现文件上传功能,这通常涉及到前端表单提交、后端接收并处理上传文件以及文件存储等多个步骤。 1. **文件上传基础** 文件上传是Web应用中常见...
Struts1使用了`org.apache.struts.upload.FormFile`类来处理文件上传。当用户提交包含文件的表单时,服务器端的ActionForm会接收到这个FormFile对象,通过它获取到文件的内容和元数据。然而,原生的Struts1并不支持...
在Struts2中,实现文件上传功能是常见的需求,尤其是在处理用户提交的表单时,如上传图片、文档等。本篇文章将深入探讨如何在Struts2框架下实现文件上传的代码实践。 首先,我们需要在Struts2的配置文件(struts....