最近要实现一个上传技术,起初考虑使用struts1.2的html标签来实现上传功能,但是后来发现如果使用html标签那么在上传页面的布局,则不是那么灵活了! 后来放弃了这种思路,寻找使用传统标签来实现上传功能!
1。定义上传页面;
<form name="form1" action="/ss/upFileAction.do" target="" method="post" enctype="multipart/form-data">
<table class="table_info2" cellpadding="3" border="0.3" cellspacing="1">
<tr>
</tr>
<tr>
<td><input type="file" name="theFile" id="theFile" ></td>
</tr>
<tr>
<td><input type="text" id="descFile" value="" name="descFile">(文件描述)</td>
</tr>
<tr>
<td> <input type="checkbox" id="replace" name="replace" value="1">是否覆盖同名附件</td>
</tr>
<tr>
<td><input type="button" id="button" value="提交" onClick="upfile();"> <input type="button" value="取消" onClick="closeOpen();"></td>
</tr>
</table>
</form>
2。定义要使用的actionform,在其中使用file类型的字段,处理上传流!
ActionForm:
protected FormFile theFile;
3。后台处理传来的文件流,并保存到指定的服务器目录下;
public ActionForward upfile(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward forward = null;
if (form instanceof UpFileForm) {// 如果form是UpLoadsForm
response.setContentType("text/html; charset=GBK");
UpFileForm theForm = (UpFileForm) form;
String replace = theForm.getReplace();
System.out.println("-=-=>"+theForm.getDescFile());
FormFile file = theForm.getTheFile();// 取得上传的文件
String contentType = file.getContentType();
String size = (file.getFileSize() + " bytes");// 文件大小
String fileName = file.getFileName();// 文件名
String area_code = request.getParameter("h_xian");
String yljg = request.getParameter("yljg");
String serverPath = request.getParameter("serverPath");
String desc = theForm.getDescFile();
try {
InputStream stream = file.getInputStream();// 把文件读入
//创建母文件夹
String folder_path = serverPath+"\\"+area_code+"\\"+yljg;
File folder_file =new File(folder_path);
if(!folder_file.exists()){
folder_file.mkdirs();
}
if(replace==null||"".equals(replace)){
if(getUpFileName(folder_path,fileName)){
request.setAttribute("S_ERROR_MSG", "对不起,上传的文件名重复,请重新命名!");
return mapping.findForward("error");
}
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(folder_path + "\\"
+ fileName);
// 建立一个上传文件的输出流,将上传文件存入web应用的根目录。
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);
e.printStackTrace();
request.setAttribute("S_ERROR_MSG", "对不起,附件上传失败!");
return mapping.findForward("error");
}
return mapping.findForward("input");
}
return null;
}
上传实现后,如果要实现下载功能,则思路是这样的:
只要获取该文件所在的http路径,然后写在a标签的href属性中,然后设定target属性值为a便可! 当我们点击该链接是,必可进入都该文件可! 我们可以对该链接右键进行目标另存为或者迅雷下载! 如果我们要下载的是doc文件或者excel文件,在点击链接后,便可弹出保存或者打开对话框! 也就是说访问web上的资源,是这样的情况! 如果路径为本地路径,访问本地资源,点击链接,则直接弹出保存对话框! 这是web访问和本地访问的不同方式!
分享到:
相关推荐
Struts1.2驱动包是Java Web开发中一个重要的组件,它是Apache Struts框架的特定版本,用于支持基于Model-View-Controller (MVC)设计模式的应用程序开发。Struts1.2因其稳定性和广泛的功能集而在过去备受推崇,尤其在...
在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...
本项目"基于Struts1.2的上传下载Demo"是针对该框架的一个实践示例,旨在帮助开发者理解和解决在Struts1.2环境中进行文件上传与下载的问题。 首先,让我们深入了解一下Struts1.2中的文件上传功能。在Struts1.2中,...
在这个"struts1.2简单文件上传例子"中,我们将深入探讨Struts1.2框架如何处理文件上传功能。 首先,文件上传在Web应用中是一个常见的需求,例如用户可能需要上传个人头像、文档或者其他类型的数据。在Struts1.2中,...
Struts1.2是Apache软件基金会的开源框架,主要用于构建基于Java的企业级Web应用程序。它遵循Model-View-Controller(MVC)设计模式,提供了一种结构化的方式来组织应用程序,从而提高了开发效率和代码可维护性。这次...
总的来说,深入理解Struts 1.2的ActionForm表单验证机制,以及它与Spring框架的集成,将有助于提升你在Java Web开发领域的专业技能。这包括熟悉MVC模式、客户端与服务器端验证策略、Struts配置文件、Spring的依赖...
Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...
Struts1.2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,提高代码的可维护性和可重用性。在JSP中,Struts...
Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。这个框架提供了一种组织应用结构和控制应用程序流程的方式,极大地简化了MVC(Model-View-Controller)模式的实现...
Struts1.2是该框架的一个早期版本,虽然现在已经被Struts2所取代,但在许多遗留系统中仍然广泛使用。本教程将深入探讨Struts1.2的核心概念、功能以及与Struts2的区别。 一、Struts框架基础 1. **MVC模式**:Struts...
Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。这个框架的核心是Model-View-Controller(MVC)设计模式,它提供了一种结构化的、可扩展的方式来组织和管理应用的...
Struts1.2标签库包含了一系列与ActionForm、Action、Message资源、表单验证、国际化等相关的标签,这些标签使得开发者能够更高效地构建用户界面。例如,`<s:textfield>`用于创建输入字段,`<s:submit>`用于提交表单...
Struts1.2是一款历史悠久且广泛使用的Java Web框架,它基于Model-View-Controller(MVC)设计模式,为开发人员提供了构建动态、数据驱动的Web应用的强大工具。该框架在2004年首次发布,是Apache软件基金会的一个项目...
Struts 1.2驱动包是Apache软件基金会开发的一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。它旨在提供一个结构化的、可扩展的平台,帮助开发者构建更易于维护和管理的Web应用。Struts 1.2...
Struts 1.2 是一个历史悠久的Java Web框架,由Apache软件基金会开发,它在Web应用开发领域曾经占据了重要的地位。这个压缩包包含了Struts 1.2版本的类库和源码,使得开发者能够方便地研究和学习这个经典框架的工作...
Struts1.2是一个经典的Java Web开发框架,它在企业级应用中被广泛使用,尤其在处理表单提交和动作调度方面。图片上传是Web应用中的常见功能,它允许用户上传图片并存储在服务器上。在Struts1.2中实现这一功能需要...
Struts 1.2 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会开发。它极大地简化了构建动态、数据驱动的Web应用的过程,提高了开发效率和代码的可维护性。这个压缩包文件...
总的来说,Struts1.2实现动态多文件上传涉及前端表单设计、后端处理逻辑、文件上传组件的使用以及文件的存储策略。在实际开发中,还需要考虑性能优化、错误处理和用户体验等方面的问题。提供的压缩包文件“Struts1.2...
4. **插件使用**:Struts1.2提供了一些预定义的拦截器插件,例如`TilesPlugin`用于集成Tiles视图技术,`ValidationPlugin`用于表单验证,`I18nPlugin`用于国际化支持。这些插件可以通过简单的配置就能引入到项目中,...