- 浏览: 736073 次
- 性别:
- 来自: 湖北
文章分类
最新评论
-
SE_XiaoFeng:
用mysqldump命令行导出。这个报错唉。错误提示信息如下: ...
linux下如何导入导出MySQL数据库 -
SE_XiaoFeng:
文章写的干脆了当,我喜欢!
linux下如何导入导出MySQL数据库 -
niky6688:
网站咋打不开呢
beckham herms birki ...
【原创】上周给公司新做了一个网站,请大家审阅! -
niky6688:
哈哈
new chanel bags 2012
burbe ...
今天我抢了一个咪咪??? -
ydsakyclguozi:
...
jsp资源管理器也可能是木马
版权所有,欢迎转载,转载请注明转自http://www.suneca.com/
有关文件上传的控件可能非常多,比如有用于学习的SmartUpload、性能非常好的COS组件、有Apache的FileUpload组件、有Struts的FormFile组件、有Spring上传文件,还有其他一些开发的控件等等。假如你是用Struts,那基于Struts FormFile组件应该是一个不错的选择。
Struts FormFile跟Struts ActionForm结合得非常好,使用起来也非常简单,但是,对于同时上传多个附件,那就有点麻烦了!不管怎么样,它还是一个好东西,关键看大家怎么看待他了!
第一步,我们创建一个新的Struts工程,创建一个FileUploadForm,FileUploadForm如下所示:
程序代码
package zizz.struts;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
/**
* 基于Struts FormFile的文件上传.
* @author chen yuzhe
*
*/
public class FileUploadForm extends ActionForm{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -7794872310588861856L;
/**
* 上传的文件
*/
private FormFile uploadFile;
public FormFile getUploadFile() {
return uploadFile;
}
public void setUploadFile(FormFile uploadFile) {
this.uploadFile = uploadFile;
}
}
第二步,创建一个Action,用于处理上传的文件及保存在服务器的路径,FileUploadAction文件内容如下
程序代码
package zizz.struts;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
/**
* 文件上传的Action,该类用于处理FormFile及将上传的文件保存到磁盘的指定位置.
* @author ZIZZ
*
* @Create-Time:2007-12-26 下午03:35:37
*/
public class FileUploadAction extends Action {
/**
* 上传的文件保存在服务器的路径
*/
private static String UPLOAD_FILE_PATH = "c:/income/";
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
FileUploadForm uploadForm = (FileUploadForm)form;
//得到上传的文件
FormFile uploadFile = uploadForm.getUploadFile();
//得到文件名
String fileName = uploadFile.getFileName();
//得到文件大小
int fileSize = uploadFile.getFileSize();
System.out.println("FileName = " + fileName);
System.out.println("FileSize=" + fileSize);
boolean result = true;
try{
//得到文件的输入流
InputStream is = uploadFile.getInputStream();
//上传文件
uploadFile(fileName,is);
}catch(IOException ex){
ex.printStackTrace();
//假如上传文件失败,设置一个失败的标记位
result = false;
}
if(result){
return mapping.findForward("success");
} else {
return mapping.findForward("fail");
}
}
/**
* 上传文件
* @param fileName
* @param is
* @throws IOException
*/
private void uploadFile(String fileName,InputStream is) throws IOException{
OutputStream os = new FileOutputStream(UPLOAD_FILE_PATH + fileName);
//8k缓存数据
byte[] buffer = new byte[1024 * 8];
//设置读进缓存的字节数
int len;
while((len=is.read(buffer))!=-1){
//将缓存数据写入磁盘
os.write(buffer,0,len);
}
//关闭输出流
os.close();
//关闭输入流
is.close();
}
}
第三步,编写文件上传的jsp文件
程序代码
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传表单</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">
</head>
<body>
<html:form action="/upload" enctype="multipart/form-data">
上传文件:<html:file property="uploadFile"></html:file>
<html:submit value="上传文件"></html:submit>
</html:form>
</body>
</html>
第四步,配置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="fileUploadForm" type="zizz.struts.FileUploadForm"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/upload" name="fileUploadForm" scope="request" type="zizz.struts.FileUploadAction">
<forward name="success" path="/success.jsp" redirect="true"></forward>
<forward name="fail" path="/fail.jsp" redirect="true"></forward>
</action>
</action-mappings>
<message-resources parameter="zizz.struts.ApplicationResources" />
</struts-config>
有关文件上传的控件可能非常多,比如有用于学习的SmartUpload、性能非常好的COS组件、有Apache的FileUpload组件、有Struts的FormFile组件、有Spring上传文件,还有其他一些开发的控件等等。假如你是用Struts,那基于Struts FormFile组件应该是一个不错的选择。
Struts FormFile跟Struts ActionForm结合得非常好,使用起来也非常简单,但是,对于同时上传多个附件,那就有点麻烦了!不管怎么样,它还是一个好东西,关键看大家怎么看待他了!
第一步,我们创建一个新的Struts工程,创建一个FileUploadForm,FileUploadForm如下所示:
程序代码
package zizz.struts;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
/**
* 基于Struts FormFile的文件上传.
* @author chen yuzhe
*
*/
public class FileUploadForm extends ActionForm{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -7794872310588861856L;
/**
* 上传的文件
*/
private FormFile uploadFile;
public FormFile getUploadFile() {
return uploadFile;
}
public void setUploadFile(FormFile uploadFile) {
this.uploadFile = uploadFile;
}
}
第二步,创建一个Action,用于处理上传的文件及保存在服务器的路径,FileUploadAction文件内容如下
程序代码
package zizz.struts;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
/**
* 文件上传的Action,该类用于处理FormFile及将上传的文件保存到磁盘的指定位置.
* @author ZIZZ
*
* @Create-Time:2007-12-26 下午03:35:37
*/
public class FileUploadAction extends Action {
/**
* 上传的文件保存在服务器的路径
*/
private static String UPLOAD_FILE_PATH = "c:/income/";
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
FileUploadForm uploadForm = (FileUploadForm)form;
//得到上传的文件
FormFile uploadFile = uploadForm.getUploadFile();
//得到文件名
String fileName = uploadFile.getFileName();
//得到文件大小
int fileSize = uploadFile.getFileSize();
System.out.println("FileName = " + fileName);
System.out.println("FileSize=" + fileSize);
boolean result = true;
try{
//得到文件的输入流
InputStream is = uploadFile.getInputStream();
//上传文件
uploadFile(fileName,is);
}catch(IOException ex){
ex.printStackTrace();
//假如上传文件失败,设置一个失败的标记位
result = false;
}
if(result){
return mapping.findForward("success");
} else {
return mapping.findForward("fail");
}
}
/**
* 上传文件
* @param fileName
* @param is
* @throws IOException
*/
private void uploadFile(String fileName,InputStream is) throws IOException{
OutputStream os = new FileOutputStream(UPLOAD_FILE_PATH + fileName);
//8k缓存数据
byte[] buffer = new byte[1024 * 8];
//设置读进缓存的字节数
int len;
while((len=is.read(buffer))!=-1){
//将缓存数据写入磁盘
os.write(buffer,0,len);
}
//关闭输出流
os.close();
//关闭输入流
is.close();
}
}
第三步,编写文件上传的jsp文件
程序代码
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传表单</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">
</head>
<body>
<html:form action="/upload" enctype="multipart/form-data">
上传文件:<html:file property="uploadFile"></html:file>
<html:submit value="上传文件"></html:submit>
</html:form>
</body>
</html>
第四步,配置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="fileUploadForm" type="zizz.struts.FileUploadForm"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/upload" name="fileUploadForm" scope="request" type="zizz.struts.FileUploadAction">
<forward name="success" path="/success.jsp" redirect="true"></forward>
<forward name="fail" path="/fail.jsp" redirect="true"></forward>
</action>
</action-mappings>
<message-resources parameter="zizz.struts.ApplicationResources" />
</struts-config>
发表评论
-
属性文件的读取 Java
2010-12-11 08:51 1192import java.util.ResourceBu ... -
【精华】Java项目生成静态页面
2010-12-11 08:47 1234需转载,请注明转载出处!本文地址: http://blog. ... -
【珍藏版】微软等数据结构+算法面试100题全部出炉[100题首次完整亮相]
2010-12-06 16:33 2876转至: http://blog.csdn.net/v_JULY ... -
【原创】Log4j 日志文件 使用
2010-12-02 11:37 1227log4j.properties 代码 log4j.ro ... -
【精华】保护自己的网站资源
2010-11-19 08:03 1201禁止用“另存为”保存页面 <head> < ... -
【精华】Window.Open()网页弹出窗口大全
2010-11-16 18:01 1564【1、最基本的弹出窗口代码】 <!--<br ... -
【精华】页面右下角弹出类似QQ或MSN的消息提示
2010-11-05 16:36 1017具体实现见 附件 主要是 针对 在框架中 如何实现 后下 ... -
【原创】苦恼了1个星期的DIV 滚动条置底, 今天终于实现了!!!
2010-11-05 10:58 3441<script type="text/ja ... -
【急救......】Could not find the main class.program will exit
2010-11-01 17:23 1630Java中Could not find the main cl ... -
屏蔽 F5 刷新键
2010-10-28 11:09 770<script language="JavaS ... -
web页面中按ESC关闭窗口
2010-10-28 11:04 1409<script language="jav ... -
web页面中如果想让用户复制页面内容粘贴时加入一些自定义信息
2010-10-28 11:04 853如果让用户复制你网站上的信息到别处粘贴时,附加自定义信息可以采 ... -
防止页面被多次提交
2010-10-28 11:03 18741. javascript ,设置一个变量,只允许提交一 ... -
Javascript打印代码
2010-10-18 14:38 897Javascript打印代码 实现打印功能的javasc ... -
【原创】struts+mysql+jsp 分页源码
2010-09-16 10:42 915具体代码见附件 一起学习,xf.zhouwenjun@163 ... -
【原创】struts 动态 设置radio 与 select 的默认值
2010-08-06 13:10 1644运行效果见 附件,有好的解决方法请分享xf.zhouwenju ... -
【原创】平时编码中积累的,非常好用,且很全的【时间工具类】
2010-07-21 17:42 888具体java类 请下载附件!烦请大家一起完善完善,请给我也分享 ... -
【原创】苦苦寻找的: ajax 定时读取数据,无刷新在页面显示
2010-07-19 17:17 1042demo 见附件 -
【绝】在web工程下 调用js 日历控件 报错【missing ( before function parameters)
2010-07-09 11:28 1108报错代码 function document.onclick( ... -
【精髓】非常好用的日历控件,可以自由的选择日期 时分秒
2010-07-09 10:57 17451、Calendar.js代码如下 省略! 具体内容 ...
相关推荐
在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...
在本"基于Struts的文件上传下载源代码"中,我们可以深入理解Struts如何处理文件上传和下载操作,这对于初学者来说是一个非常实用的学习资源。 首先,文件上传在Web应用中是常见的功能,它允许用户从本地计算机选择...
本文将详细介绍基于Struts文件上传的实现方法,包括在JSP文件中定义文件上传表单、在Form表单中定义FormFile、利用Struts文件进行关联Form、获取上传文件的各种信息等。 在JSP文件中定义文件上传表单 在Struts中,...
FormFile对象包含了上传文件的名称、类型、大小以及临时存储在服务器上的路径。 三、批量上传原理 批量上传涉及到同时处理多个文件的上传。用户在前端选择多个文件后,这些文件会被封装成多个FormFile对象,通过...
通过`List<String> imageContentType`可以获取上传文件的MIME类型,`List<String> imageFileName`则可以获取文件的原始文件名。这些信息对于正确处理上传的文件非常重要。 5. **上传成功后的提示** 在文件上传...
Struts1是Apache Struts的一个版本,它是一个用于构建基于Java的Web应用程序的开源框架。Struts1提供了MVC(Model-View-Controller)架构模式的支持,使得开发者能够更加清晰地组织代码结构,易于维护与扩展。 ####...
2. 创建上传文件的JSP页面。 3. 编写Action类,使用Apache Commons FileUpload处理文件。 4. 验证和保存上传的文件。 5. 显示上传结果。 通过这种方式,你可以构建一个灵活且易于维护的文件上传系统。记住,文件...
- `FormFile`: 用于封装上传文件的信息,包括文件名、类型、大小等。 ### 4. 配置文件 在Struts配置文件(struts-config.xml)中,你需要添加`multipart-config`元素到`<form-beans>`部分,指定文件上传的临时存储...
如果需要上传文件,该类中的相应属性应该声明为`org.apache.struts.action.FormFile`类型。Struts框架会自动将客户端上传的文件封装到FormFile对象中。 ```java public class BookForm extends ActionForm { ...
Struts是Apache软件基金会下的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。在Struts 1.x版本中,处理文件上传主要依赖于`org.apache.struts.upload.FormFile`类。在Struts 2中...
如果上传文件大小超过这个限制,Struts会抛出`MaxUploadSizeExceededException`异常。 2. Spring框架中的文件上传: Spring提供了`CommonsMultipartFile`类来处理文件上传,它是基于Apache Commons FileUpload库的...
### Struts实现多文件上传详解 #### 一、概述 在Web应用开发中,文件上传是常见的需求之一。尤其在需要用户批量提交多个文件时,就需要实现多文件上传功能。Struts框架作为Java Web开发中非常成熟的一个MVC框架,...
Struts是一个开源的Java Web应用程序框架,它极大地简化了创建基于MVC(Model-View-Controller)模式的Web应用。在Struts框架中,文件上传功能是一个常见的需求,尤其是在处理用户提交表单时,比如上传图片、文档等...
5. **文件大小和类型限制**:在Action类中,可以通过`FormFile`对象获取上传文件的信息,包括文件名、大小、类型等。我们可以根据业务需求设定大小限制,如果超过限制则抛出异常或者提示用户。同时,可以检查文件的...
Struts1.2是一个经典的Java Web开发框架,用于构建基于MVC(模型-视图-控制器)模式的应用程序。在本示例中,它被用来实现一个图片上传功能,同时包含了对文件格式和大小的检查,以确保上传的安全性和有效性。下面...
对于文件上传,我们需要在Bean中声明一个类型为`org.apache.struts.upload.FormFile`的属性,比如`uploadFile`,它将用来存储上传文件的信息。 4. **JSP页面**:创建一个HTML表单,包含一个`<input type="file">`...
最后,用户成功上传文件后,会被重定向到`/jsp/success.jsp`页面,你可以在该页面上显示上传结果。 这个"struts文件上传例子"是一个基础的实践教程,对于了解Struts框架如何处理文件上传非常有帮助。通过学习和理解...
本文通过一个基于Struts 1.2的图片上传示例,详细介绍了如何在Struts框架下实现文件上传功能。通过对核心代码的分析,我们不仅了解了文件上传的基本流程,还学习了如何在Struts中配置和处理文件上传的过程。这对于...
7. **显示上传文件**:在上传成功后,可以将文件的URL或名称传递回JSP页面,通过`<img>`标签或者超链接展示或访问已上传的文件。 8. **安全考虑**:在实际项目中,确保文件上传安全至关重要。应避免上传可执行文件...
1. **Struts框架基础**:Struts是一个基于MVC(Model-View-Controller)设计模式的框架,它简化了Java Web开发。在Struts中,ActionForm负责接收和验证用户输入,Controller(通常是一个Struts Action)处理业务逻辑...