- 浏览: 1862528 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 2759java中导出Excel有两个组件可以使用,一个是jxl,一个 ... -
会移动的文字
2011-04-11 09:33 649[HTML代码]会移动的文字(Marquee) Marqu ... -
${pageContext.request.contextPath} JSP取得绝对路径
2011-02-24 11:05 5950一.问题 JSP中究 ... -
Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope
2011-01-12 15:16 1830javax.servlet.jsp.JspException: ... -
jsp中加入天气预报
2010-12-23 14:39 3540图片 使用265天气预报 <iframe src ... -
解决 ENCTYPE= "multipart/form-data "表单提交值获取方案
2010-12-17 09:27 9049表单经常上传附件, 会使用到ENCTYPE= "mu ... -
Servlet和JSP经验总结
2010-12-13 13:56 936在servlet的init()方法中缓 ... -
JSP动作
2010-12-01 11:22 901JSP动作利用XML语法格式的标记来控制Servlet引擎的行 ... -
JSP及语法概要
2010-12-01 11:21 962JavaServer Pages(JSP)使得我们能够分离页面 ... -
JSP中out对象
2010-12-01 11:20 1749JSP中out对象的方法总结 out对象被封装为javax.s ... -
JSP 导出Excel,Word文档
2010-11-30 11:11 6003Excel: <% response.setH ... -
在web.xml中配置异常处理页面
2010-11-25 14:11 11451通常为了给用户提供良好的人机接口,我们都会为整个web应用,提 ... -
jsp页面显示调试值
2010-01-12 15:08 2151<%@ page contentType=" ... -
jsp页面的选择判断
2009-12-15 16:40 4443我们在做jsp页面判断时会发现: jstl的c:if是没有el ... -
设置jsp session 失效时间示例
2009-11-30 10:52 6032在jsp中设置session的超时时间 (单位:分钟) 在 ... -
EL表达式 (详解)
2009-10-29 16:00 1332EL表达式 1、EL简介 1)语法结构 ... -
jsp标签页面内的跳转简单实现
2009-09-16 11:53 3775呵呵,类似java se 的tablePanel。 看看效果图 ...
相关推荐
这没有用到什么东西,只是用jsp+struts做了一个上传功能。可以上传很多类型的文件,不受任何限止
使用ecplise打开即可,upload.jsp是上传文件界面,show.jsp中可以下载文件,相关的java代码在src目录下,很简单不多说,可运行。上传的文件可以在tomcat下的wtpwebapps下的files文件夹中看到。(注意:每一次重新部署...
JSP文件上传功能,用于实现Struts上传功能
struts2+jsp 文件上传,供大家一起共同分享学习。
@bufferSize:指定上传文件的输入缓冲的大小.默认为4096 @className:指定当前控制器的配置类.默认为org.apache.struts.config.ControllerConfig @contentType:指定相应结果的内容类型和字符编码 @locale:指定是否...
用struts上传多个文件的方法,建立上传用的JSP文件配置struts-config.xml文件
struts2中的文件上传和下载: 1.首先导入commons-fileupload-1.2.1.jar和commons-io-1.4.jar两个jar包 2.其次JSP页面中的文件上传控件所在的form必须设置属性enctype="multipart/form-data" 3.再次,struts2中...
jspstruts1_2struts2 中文件上传 java文件上传
Struts2资源文件在jsp页面中显示乱码解决
struts2和jspServlet上传
JSP和Struts解决用户退出问题JSP和Struts解决用户退出问题
Jsp+Struts做的BBS系统 Jsp+Struts做的BBS系统 Jsp+Struts做的BBS系统 Jsp+Struts做的BBS系统
jsp+struts2购物车全部源代码,并包含数据库完整代码。是学习jsp 与struts2的好材料。
NULL 博文链接:https://yuanyuan7891.iteye.com/blog/711312
java jsp servlet struts hibernate spring 实用技术
包括前台页面upFile.jsp 配置文件struts.xml Action处理类UploadAction.java
学javaweb课程 的大作业。界面仿淘宝、初学者可以看下 内有Mysql数据库备份的sql文用navicate 创建一个数据库名叫db_shopping 然后导入就可以运行了。不会用的私信
jsp+struts小项目-1 是使用struts1.2开发,javabean封装数据,等等一些达到学习型的小案例技术
一个简单的sturts2做的上传文件的小程序。
jsp项目开发实录 jsp项目开发实录 Struts 实现 程序完整 Struts 实现 程序完整 Struts 实现 程序完整 Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整...