- 浏览: 1884372 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (514)
- OPEN (41)
- WARN (33)
- EXPER (16)
- RESOURCE (7)
- TOOL (4)
- DWR (10)
- Struts1.x (10)
- Ibtais (18)
- MyEclipse (30)
- Sql Server (64)
- Tomcat (7)
- APACHE (4)
- JSP (18)
- SERVLET (6)
- ENGLISH (0)
- ECSide (8)
- JasperReports (7)
- JAVA (24)
- JS (42)
- XML (26)
- CVS (8)
- Mind (1)
- JQUERY (2)
- IBATIS (6)
- PROJECT (0)
- STRUTS2 (0)
- PROXOOL (0)
- SPRING (4)
- Hibernate (0)
- SSI (0)
- JBPM (11)
- FLEX (3)
- JSON (2)
- GWT (1)
- jeecms v3 (1)
- Flash (2)
- DATA (1)
- ORACLE (3)
- 查询oracle 中逗号分隔字符串中所有值 (1)
最新评论
-
小小西芹菜:
GoEasy web三步轻松实现web实时推送1. 引入goe ...
服务器推送技术 java -
kg_1997:
这个方法太棒了,可以不用to_date函数,实在是棒!!!
java/oracle日期处理 -
wodesunday:
:idea:
SQL的分段统计查询语句 -
wodesunday:
引用
SQL的分段统计查询语句 -
BlueSkator:
讲的有点浅,没有深入进去
tomcat需要的重新发布和重启服务器的几种情况
使用FileUpload组件上传文件
文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,目录不存在请自建目录。
新建一个servlet: Upload.java用于文件上传:
编译该servlet,注意要指定classpath,确保包含commons-upload-1.0.jar和tomcat\common\lib\servlet-api.jar。
配置servlet,用记事本打开tomcat\webapps\你的webapp\WEB-INF\web.xml,没有的话新建一个。
典型配置如下:
配置好servlet后,启动tomcat,写一个简单的html测试:
二:
选择上传文件页面:selfile.jsp,如此访问此页面:
表单bean: UpLoadForm.java
处理上传的文件:UpLoadAction.java
成功页display.jsp
六、测试
从本站下载整个目录结构TestStruts并放入tomcat的webapps目录下,在浏览器中输入:
http://127.0.0.1:8080/TestStruts/upload/upload.do
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiedayun/archive/2007/04/09/1558186.aspx
文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,目录不存在请自建目录。
新建一个servlet: Upload.java用于文件上传:
public class Upload extends HttpServlet { private String uploadPath = "C:\\upload\\"; // 上传文件的目录 private String tempPath = "C:\\upload\\tmp\\"; // 临时文件目录 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { } } 在doPost()方法中,当servlet收到浏览器发出的Post请求后,实现文件上传。以下是示例代码: public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try { DiskFileUpload fu = new DiskFileUpload(); // 设置最大文件尺寸,这里是4MB fu.setSizeMax(4194304); // 设置缓冲区大小,这里是4kb fu.setSizeThreshold(4096); // 设置临时目录: fu.setRepositoryPath(tempPath); // 得到所有的文件: List fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator(); // 依次处理每一个文件: while(i.hasNext()) { FileItem fi = (FileItem)i.next(); // 获得文件名,这个文件名包括路径: String fileName = fi.getName(); // 在这里可以记录用户和文件信息 // ... // 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名: fi.write(new File(uploadPath + "a.txt")); } } catch(Exception e) { // 可以跳转出错页面 } } 如果要在配置文件中读取指定的上传文件夹,可以在init()方法中执行: public void init() throws ServletException { uploadPath = .... tempPath = .... // 文件夹不存在就自动创建: if(!new File(uploadPath).isDirectory()) new File(uploadPath).mkdirs(); if(!new File(tempPath).isDirectory()) new File(tempPath).mkdirs(); }
编译该servlet,注意要指定classpath,确保包含commons-upload-1.0.jar和tomcat\common\lib\servlet-api.jar。
配置servlet,用记事本打开tomcat\webapps\你的webapp\WEB-INF\web.xml,没有的话新建一个。
典型配置如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>Upload</servlet-name> <servlet-class>Upload</servlet-class> </servlet> <servlet-mapping> <servlet-name>Upload</servlet-name> <url-pattern>/fileupload</url-pattern> </servlet-mapping> </web-app>
配置好servlet后,启动tomcat,写一个简单的html测试:
<form action="fileupload" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="file"> <input type="submit" name="Submit" value="upload"> </form>注意action="fileupload"其中fileupload是配置servlet时指定的url-pattern。
二:
选择上传文件页面:selfile.jsp,如此访问此页面:
<html:link module="/upload" page="/upload.do"> 继续上传</html:link></h2> -------------------------------------------------------------------------------- <%@ page contentType="text/html; charset=GBK" %> <%@ page import="org.apache.struts.action.*, java.util.Iterator, org.apache.struts.Globals" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <logic:messagesPresent> <ul> <html:messages id="error"> <li><bean:write name="error"/></li> </html:messages> </ul><hr /> </logic:messagesPresent> <html:html> <html:form action="uploadsAction.do" enctype="multipart/form-data"> <html:file property="theFile"/> <html:submit/> </html:form> </html:html>
表单bean: UpLoadForm.java
package org.apache.struts.webapp.upload; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.*; import org.apache.struts.upload.*; /** * <p>Title:UpLoadForm</p> * <p>Description: QRRSMMS </p> * <p>Copyright: Copyright (c) 2004 jiahansoft</p> * <p>Company: jiahansoft</p> * @author wanghw * @version 1.0 */ public class UpLoadForm extends ActionForm { public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded"; protected FormFile theFile; public FormFile getTheFile() { return theFile; } public void setTheFile(FormFile theFile) { this.theFile = theFile; } public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = null; //has the maximum length been exceeded? Boolean maxLengthExceeded = (Boolean) request.getAttribute( MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED); if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue())) { errors = new ActionErrors(); errors.add( ActionMessages.GLOBAL_MESSAGE , new ActionMessage("maxLengthExceeded")); errors.add( ActionMessages.GLOBAL_MESSAGE , new ActionMessage("maxLengthExplanation")); } return errors; } }
处理上传的文件:UpLoadAction.java
package org.apache.struts.webapp.upload; import java.io.*; import javax.servlet.http.*; import org.apache.struts.action.*; import org.apache.struts.upload.FormFile; /** * <p>Title:UpLoadAction</p> * <p>Description: QRRSMMS </p> * <p>Copyright: Copyright (c) 2004 jiahansoft</p> * <p>Company: jiahansoft</p> * @author wanghw * @version 1.0 */ public class UpLoadAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { if (form instanceof UpLoadForm) {//如果form是UpLoadsForm String encoding = request.getCharacterEncoding(); if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8"))) { response.setContentType("text/html; charset=gb2312"); } UpLoadForm theForm = (UpLoadForm ) form; FormFile file = theForm.getTheFile();//取得上传的文件 String contentType = file.getContentType(); String size = (file.getFileSize() + " bytes");//文件大小 String fileName= file.getFileName();//文件名 try { InputStream stream = file.getInputStream();//把文件读入 String filePath = request.getRealPath("/");//取当前系统路径 ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + file.getFileName()); //建立一个上传文件的输出流,将上传文件存入web应用的根目录。 //System.out.println(filePath+"/"+file.getFileName()); int bytesRead = 0; byte[] buffer = new byte[8192]; while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead);//将文件写入服务器 } bos.close(); stream.close(); }catch(Exception e){ System.err.print(e); } //request.setAttribute("dat",file.getFileName()); request.setAttribute("contentType", contentType); request.setAttribute("size", size); request.setAttribute("fileName", fileName); return mapping.findForward("display"); } return null; } }
成功页display.jsp
<%@ page contentType="text/html; charset=GBK" %> <%@ page import="org.apache.struts.action.*, java.util.Iterator, org.apache.struts.Globals" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> 上传成功!上传信息如下: <p> <b>The File name:</b> <%= request.getAttribute("fileName") %> </p> <p> <b>The File content type:</b> <%= request.getAttribute("contentType") %> </p> <p> <b>The File size:</b> <%= request.getAttribute("size") %> </p> <hr /> <hr /> <html:link module="/upload" page="/upload.do"> 继续上传</html:link></h2>
六、测试
从本站下载整个目录结构TestStruts并放入tomcat的webapps目录下,在浏览器中输入:
http://127.0.0.1:8080/TestStruts/upload/upload.do
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiedayun/archive/2007/04/09/1558186.aspx
发表评论
-
jsp利用POI直接生成Excel并在页面中导出
2011-06-18 09:00 2806java中导出Excel有两个组件可以使用,一个是jxl,一个 ... -
会移动的文字
2011-04-11 09:33 695[HTML代码]会移动的文字(Marquee) Marqu ... -
${pageContext.request.contextPath} JSP取得绝对路径
2011-02-24 11:05 6013一.问题 JSP中究 ... -
Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope
2011-01-12 15:16 1870javax.servlet.jsp.JspException: ... -
jsp中加入天气预报
2010-12-23 14:39 3587图片 使用265天气预报 <iframe src ... -
解决 ENCTYPE= "multipart/form-data "表单提交值获取方案
2010-12-17 09:27 9114表单经常上传附件, 会使用到ENCTYPE= "mu ... -
Servlet和JSP经验总结
2010-12-13 13:56 970在servlet的init()方法中缓 ... -
JSP动作
2010-12-01 11:22 943JSP动作利用XML语法格式的标记来控制Servlet引擎的行 ... -
JSP及语法概要
2010-12-01 11:21 997JavaServer Pages(JSP)使得我们能够分离页面 ... -
JSP中out对象
2010-12-01 11:20 1799JSP中out对象的方法总结 out对象被封装为javax.s ... -
JSP 导出Excel,Word文档
2010-11-30 11:11 6049Excel: <% response.setH ... -
在web.xml中配置异常处理页面
2010-11-25 14:11 11494通常为了给用户提供良好的人机接口,我们都会为整个web应用,提 ... -
jsp页面显示调试值
2010-01-12 15:08 2176<%@ page contentType=" ... -
jsp页面的选择判断
2009-12-15 16:40 4488我们在做jsp页面判断时会发现: jstl的c:if是没有el ... -
设置jsp session 失效时间示例
2009-11-30 10:52 6069在jsp中设置session的超时时间 (单位:分钟) 在 ... -
EL表达式 (详解)
2009-10-29 16:00 1369EL表达式 1、EL简介 1)语法结构 ... -
jsp标签页面内的跳转简单实现
2009-09-16 11:53 3819呵呵,类似java se 的tablePanel。 看看效果图 ...
相关推荐
在Struts2中,文件上传是常见的功能,用于允许用户在网页上上传文件到服务器。这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件...
在Struts2框架下实现文件上传,主要涉及到以下几个核心概念和技术点: 1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`...
本文将详细讲解Struts2框架中实现文件上传的两种常见方法,并探讨相关的注意事项和技术要点。 首先,我们需要了解Struts2中文件上传的基础知识。Struts2通过`struts2-core`库提供的`FileUpload`拦截器来处理文件...
在Web应用开发中,文件上传是一个非常常见的需求。Apache Struts作为一款成熟的MVC框架,在处理文件上传方面有着独特的优势。本文将详细解析如何使用Struts框架实现多文件上传的功能,并对相关的代码进行深入分析。 ...
本文将详细介绍如何在Struts1中实现单文件上传和多文件上传,并探讨如何解决上传文件大小限制的问题。 #### 二、单文件上传 ##### 1. JSP页面设计 为了实现单文件上传,我们需要在JSP页面中创建一个表单,该表单...
Struts2文件批量上传是Java Web开发中常见的一种功能,主要应用于网站后台处理大量用户上传的文件,如图片、文档等。Struts2是一个强大的MVC框架,它提供了丰富的功能来支持文件上传操作,包括单个文件上传和批量...
在MyEclipse环境下,开发Struts文件上传应用通常包括以下步骤: 1. **创建Web工程**:在MyEclipse中新建一个Dynamic Web Project,导入Struts库。 2. **配置Web.xml**:添加Struts的前端控制器DispatcherServlet。...
在Struts2的配置文件中,我们需要定义一个对应的action配置,设置input和result,以便正确处理文件上传请求和响应。 接下来,涉及到的是Hibernate的部分。当图片文件被上传并保存在服务器上后,我们可能需要将文件...
在Struts 1.2框架中,文件上传是一个常见的需求,尤其在开发Web应用程序时。Struts 1.2提供了一种便捷的方式来处理文件上传,它通过`org.apache.struts.upload.FormFile`类来实现。这个类是Struts 1.x版本中处理文件...
首先,我们来了解一下Struts文件上传的基本步骤: 1. **配置struts.xml**:在Struts配置文件中,你需要定义一个Action,这个Action将处理文件上传请求。通过`<action>`标签设置`executeResult`方法,以及与之关联的...
在Struts2中,文件上传是常见的功能之一,允许用户通过网页将本地文件传输到服务器。这个功能在处理用户上传图片、文档或其他数据时非常有用。 在实现Struts2文件上传时,我们需要了解以下几个核心知识点: 1. **...
总结来说,在Struts 2中实现文件上传涉及以下几个步骤: 1. 引入Commons FileUpload和Commons IO库。 2. 配置Struts 2以启用文件上传。 3. 创建Action类,处理上传的文件。 4. 创建表单并指定提交方式为POST,设置`...
Struts文件上传是一个在Java Web开发中常见的功能,主要用于让用户上传文件到服务器。Struts是Apache软件基金会的一个开源项目,它提供了一种用于构建企业级Web应用的MVC(Model-View-Controller)框架。在Struts...
在Struts 1中,文件上传是一个常见的功能,它允许用户通过网页表单上传文件到服务器。这个源码包可能是为了帮助开发者理解如何在Struts 1框架下实现文件上传功能。 在Struts 1中,文件上传通常涉及到以下几个核心...
在“多文件上传、文件上传与国际化”这个主题中,我们将探讨Struts04如何处理文件上传操作,以及如何实现应用程序的国际化支持。 首先,文件上传在Web开发中是一个常见的需求,例如用户可能需要上传图片、文档或...
以上就是Web开发中文件上传的几种常见方法,每种方法都有其适用场景和优缺点,开发者应根据项目需求选择合适的技术。在实际应用中,还需要考虑安全性、性能优化等问题,如限制文件大小、类型、防止恶意文件上传等。
文件上传下载是Web应用中常见的功能,特别是在教育、协作和资源共享平台中。Struts框架提供了一种方便的方式来处理文件上传和下载。以下是对Struts中文件上传下载的详细讲解: 首先,文件上传需要考虑几个关键问题...
### 关于文件上传与下载的实现方法总结 在软件开发特别是Web应用开发中,文件的上传与下载是非常常见的功能需求之一。本文将详细介绍文件上传与下载的多种实现方法,并特别聚焦于通过Java语言来实现这些功能的具体...
本项目结合了jsp和servlet技术,同时也提供了与SSH框架的集成,使得文件上传功能可以在各种Java Web项目中无缝应用。 首先,我们要了解SwfUpload的基本原理。SwfUpload是一个基于Flash的小型控件,用户可以通过它在...