-
Struts1.x中带有文本域的文件上传的问题10
带有文本域的文件上传怎么实现?
问题补充:
我的意思是
<input type="text"></input> 这是文本域
<input type="file"></input> 这是文件域
这个要怎么实现?
问题补充:
好像还没有满意的答案
我自己找了一个解决办法,可以把文本域中的值作为url地址的参数来传递数据,但前提是这个文本域的值不是很大
不知其他人有没有更好的办法
在struts2.0中这个问题得到了解决,不知1.x是否有更好的解决办法2008年6月16日 21:17
3个答案 按时间排序 按投票排序
-
actionForm类:
public class UploadForm extends ActionForm {
private FormFile file;
public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
}
action类:
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
UploadForm uploadForm = (UploadForm) form;
FormFile file = uploadForm.getFile();
String filePath ;
try {
//取得上传的文件
InputStream stream = file.getInputStream();
//把文件读入
filePath = request.getRealPath("/upload");
//上传到指定的upload包中
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "/"
+ file.getFileName());
//建立一个上传文件的输出流
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) {
e.printStackTrace();
return mapping.findForward("uploald");
}
request.setAttribute("file", filePath + "\\" + file.getFileName());
return mapping.findForward("ok");
}2008年6月17日 17:11
相关推荐
- **Struts1.x** 需要在配置文件中指定资源文件路径,处理本地化信息。 - **Struts2.x** 使用更灵活的资源包加载机制,支持基于Action的资源文件加载,更加方便。 7. **配置方式**: - **Struts1.x** 配置文件多...
2. **Action类**:在Struts1.x中,每个HTTP请求都会映射到一个特定的Action类实例。Action类是Controller的实现,它处理用户请求,执行相应的业务逻辑,并返回一个表示结果的ActionForward对象。 3. **配置文件**:...
在Struts1.x中,Action是核心组件之一,它必须继承自org.apache.struts.action.Action类,并且需要覆盖execute方法。Action对象由框架创建和管理,每一个HTTP请求都对应一个Action实例。然而,在Struts2.x中,Action...
- **手动搭建**:在 MyEclipse 中手动添加 Struts1.x 的相关依赖库,配置 web.xml 文件,并创建 struts-config.xml 文件来定义 Action 映射等配置。 - **IDE 工具支持**:利用 MyEclipse 或 Eclipse 等集成开发环境 ...
在Struts1.x中实现多文件上传,主要涉及以下几个核心概念和步骤: 1. **表单设计**:首先,你需要创建一个HTML表单,包含`<input type="file">`字段,允许用户选择多个文件。每个文件输入字段应设置不同的name属性...
在Struts1.x中,Model代表业务逻辑,View负责数据展示,Controller处理用户请求并协调Model和View。 2. **Action类**:每个HTTP请求都对应一个Action类,这是Struts1.x的核心组件。Action类处理用户请求,执行相应...
尽管现在Struts2已经成为主流,但Struts1.x的原理和知识仍然对理解Web应用开发有重要意义。 Struts1.x的核心概念包括: 1. **ActionServlet**:这是Struts框架的心脏,负责处理所有的HTTP请求。它根据配置文件中的...
2. **Action类**:在Struts 1.x中,Action 类是处理用户请求的核心组件。每个Action对应一个特定的用户动作,它接收HTTP请求,执行相应的业务逻辑,并通过ActionForward指定视图(JSP页面)进行响应。 3. **配置...
在Struts1.x中,实现I18N(Internationalization)主要是通过资源文件(如*.properties)来管理不同语言的文本。这些文件按照语言和地区进行组织,例如,`message_en.properties`用于英文,`message_zh_...
- Action是Struts1.x中处理用户请求的类。在这个例子中,我们创建一个LoginAction,它同样继承自Action基类。在execute方法中,我们检查用户名是否为"struts",如果是,则返回"loginSuccess",否则返回"login...
然而,尽管Struts1.x在当时具有广泛的应用,但它也有一些限制和已知的安全问题,比如著名的XSS和CSRF漏洞。随着技术的发展,Struts2作为其后继者,引入了更多的功能和改进,例如更强大的表达式语言和拦截器机制。 ...
在Struts1.x中,ActionServlet作为控制器,ActionForm对象作为模型和控制器之间的数据载体,而JSP页面作为视图。 2. **配置文件**: - **struts-config.xml**:这是Struts1.x的核心配置文件,定义了ActionMapping...
Struts1.x是一个经典的Java Web框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在国际化(i18n)方面,Struts1提供了强大的支持,使得应用程序可以适应不同语言和地区的用户需求。以下是关于Struts1.x国际化...
在Struts1.x中,实现文件上传功能是一个常见的需求,特别是在处理用户提交的表单时需要包含多个文件。下面我们将详细介绍如何使用Struts1.x来实现多个文件的上传。 首先,我们需要在HTML表单中添加`...
在Struts 1.x中,如果需要在表单中处理文件上传,这个库是必不可少的。 搭建Struts 1.x环境的步骤通常包括以下几点: 1. 将这些jar包添加到你的项目类路径中。 2. 创建`struts-config.xml`配置文件,定义Action、...
在Struts1.x中,这一角色由ActionServlet承担;而在Struts2.x中,则是通过过滤器(Filter)来实现对请求的处理和支持。 **URL Pattern支持**:为了统一处理所有的请求,Struts2.x推荐使用`*.action`作为映射路径,这...
5. **Tiles**:Struts1.x中的Tiles扩展提供了一种可重用的页面布局机制,使得视图的构建更为灵活。 6. **Interceptor(拦截器)**:虽然Struts1.x的拦截器功能相对较弱,但依然可以实现预处理和后处理,比如日志...
在Struts1.x中,文件上传主要依赖于`org.apache.struts.upload`包中的类。最常用的是`MultipartRequestHandler`,它实现了Servlet API中的`HttpServletRequestWrapper`接口,允许处理multipart/form-data类型的请求...
在Struts1.x中,实现文件上传功能是一个常见的需求,这通常涉及到处理用户通过表单提交的二进制数据,如图片、文档等。本示例将深入探讨如何在Struts1.x中实现文件上传功能。 首先,你需要在Struts的配置文件...