Struts1.x 实现文件上传
来源:互联网 发布:js数据是否为json格式 编辑:程序博客网 时间:2024/05/21 07:54
在Struts1中,提供了较好的文件上传方法。
下面我通过一个简单的例子实现一个简单的文件上传功能:
A.通过MyEclipse新建一个java Web Project,命名为UpLoadWeb
B.为Web工程导入Struts1包(具体怎么操作可以GOOGLE)。
C.新建文件上传Action,UploadAction。
D.新建文件上传Form,UploadForm
E.将UploadAction和UploadForm配置到struts-config.xml中这样的话,整个工程的结构就已经搭建完成,接下来就是实现文件上传的功能了。
G.在UploadAction中添加代码如下,调用UploadFileClass中的上传方法:
H.为表单添加验证功能。
I.主要页面upload.jsp
J.上传成功页面
K.上传失败页面
L.struts-config.xml配置信息
M.web.xml配置信息
下面我通过一个简单的例子实现一个简单的文件上传功能:
A.通过MyEclipse新建一个java Web Project,命名为UpLoadWeb
B.为Web工程导入Struts1包(具体怎么操作可以GOOGLE)。
C.新建文件上传Action,UploadAction。
D.新建文件上传Form,UploadForm
E.将UploadAction和UploadForm配置到struts-config.xml中这样的话,整个工程的结构就已经搭建完成,接下来就是实现文件上传的功能了。
F.新建一个类命名为UploadFileClass,实现文件输出的功能。
package com.yourcompany.upload;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import org.apache.struts.upload.FormFile;public class UploadFileClass {// 方法用于上传文件到远程服务器上public UploadFileClass(FormFile formFile, String fileName,String toServerPath) throws Exception {if (formFile != null && toServerPath != null) {InputStream inputStream = formFile.getInputStream();OutputStream outputStream = new FileOutputStream(toServerPath + "/"+ fileName);int bytesRead = 0;byte[] bytesBuf = new byte[formFile.getFileSize()];while ((bytesRead = inputStream.read(bytesBuf)) != -1) {outputStream.write(bytesBuf, 0, bytesRead);}outputStream.write(bytesBuf);outputStream.close();inputStream.close();} else {throw new Exception("This error caused by some parameters is null!");}}}
G.在UploadAction中添加代码如下,调用UploadFileClass中的上传方法:
package com.yourcompany.struts.action;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 com.yourcompany.struts.form.UploadForm;import com.yourcompany.upload.UploadFileClass;public class UploadAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {UploadForm uploadForm = (UploadForm) form;FormFile formFile = uploadForm.getUploadFile();try {String fileName = formFile.getFileName();System.out.println(fileName);String toServerPath = request.getRealPath("/");UploadFileClass uploadFileClass = new UploadFileClass(formFile,fileName, toServerPath);return mapping.findForward("success");} catch (Exception e) {e.printStackTrace();return mapping.findForward("failed");}}}
H.为表单添加验证功能。
package com.yourcompany.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.upload.FormFile;public class UploadForm extends ActionForm {private FormFile uploadFile;public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {ActionErrors errors = new ActionErrors();String fileName = uploadFile.getFileName();if (fileName == null || "".equals(fileName)) {errors.add("uploadFile", new ActionError("noUserFile"));}return errors;}public void reset(ActionMapping mapping, HttpServletRequest request) {}public FormFile getUploadFile() {return uploadFile;}public void setUploadFile(FormFile uploadFile) {this.uploadFile = uploadFile;}}
I.主要页面upload.jsp
<%@ page language="java" pageEncoding="GBK"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%><%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%><html><head><title>JSP for UploadForm form</title></head><body><html:form action="/upload" enctype="multipart/form-data">uploadFile : <html:file property="uploadFile" /><font color="#FF00"><html:errors property="uploadFile" /></font><br /><html:submit /><html:cancel /></html:form></body></html>
J.上传成功页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%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></head><body>文件上传成功!</body></html>
K.上传失败页面
<%@ 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> <title>My JSP 'failed.jsp' starting page</title> </head> <body> 文件上传失败! </body></html>
L.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="uploadForm" type="com.yourcompany.struts.form.UploadForm" /></form-beans><global-exceptions /><global-forwards /><action-mappings><action attribute="uploadForm" input="/upload.jsp" name="uploadForm"path="/upload" scope="request" type="com.yourcompany.struts.action.UploadAction"><set-property property="cancellable" value="true" /><forward name="success" path="/success.jsp"></forward><forward name="failed" path="/failed.jsp"></forward></action></action-mappings><message-resources parameter="com.yourcompany.struts.ApplicationResources" /></struts-config>
M.web.xml配置信息
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name /><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><welcome-file-list><welcome-file>upload.jsp</welcome-file></welcome-file-list></web-app>
================================OVER============================
工程源码请到地址:
http://download.csdn.net/detail/captaingan/4109944
下载
- Struts1.x 实现文件上传
- Struts1.x实现上传
- struts1 实现 文件上传
- Struts1实现文件上传
- struts1.x 文件上传 formfile
- Struts1.x的文件上传
- struts1.x上传文件配置
- 使用Struts1实现文件上传
- 使用Struts1实现文件上传
- 使用Struts1实现文件上传
- struts1.x 实现文件下载
- Struts1.x多文件上传问题
- 用struts1.x实现文件上传、下载(文件存在文件系统中)
- Java中任意多个文件上传——用Struts1.x实现
- struts1.2实现文件上传代码
- struts1.2下实现文件上传进度条
- struts1和cos实现文件上传
- 利用struts1 formfile实现文件上传功能
- Unix调试的瑞士军刀:lsof
- sql server 表索引优化
- oracle 10g中对已有的表 进行 增 、删 、改 列名
- Jquery弹出层插件Thickbox使用心得
- intel 招聘需求
- Struts1.x 实现文件上传
- php5.3开始出现的Function ereg() is deprecated Error问题解决办法
- Deprecated: Function session_register() is deprecated
- 学习 javascript
- 最近ios开发中用到的一些技术
- ASP.NET&C#学习笔录1(留言功能)
- 外部java库到android framework
- 整数划分
- Linux常用C函数—字符串转换