- 浏览: 124458 次
- 性别:
- 来自: 深圳
文章分类
最新评论
首先来看看在JSP中上传是如何做的:
从upload.jsp中选择文件上传,在result.jsp中读取上传文件的内容,注意:在form中,method必须使用post,enctype必须使用multipart/form-data
<%@ page language="java" pageEncoding="gb2312"%> <html> <body> <form action="result.jsp" method="post" enctype="multipart/form-data"> File:<input type="file" name="file"><br> <input type="submit" name="submit" value="submit"> </form> </body> </html>
result.jsp
<%@ page language="java" pageEncoding="gb2312"%> <%@ page import="java.io.*"%> <html> <body> <% InputStream is = request.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(is)); String buff = null; while((buff = bf.readLine()) != null) { out.print(buff+"<br>"); } %> </body> </html>
Struts2的上传下载依赖Apache common开源项目。具体是以下两个包:
commons-fileupload-1.2.2-bin.zip
下载地址:http://commons.apache.org/io/download_io.cgi
commons-io-1.4-bin.zip
下载地址:http://commons.apache.org/fileupload/download_fileupload.cgi
下面使用fileupload包,编写一个servlet,接收上传的文件,并放入临时文件夹中存放
package com.test.servlet; import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { DiskFileItemFactory factory = new DiskFileItemFactory(); //取得WebToot目录下的upload目录 String path = req.getRealPath("/upload"); //设置临时文件存放目录 factory.setRepository(new File(path)); //设置阀值大小,低于此值的文件将直接读入内存,高于此值的将直接写入磁盘 factory.setSizeThreshold(1024*1024); ServletFileUpload upload = new ServletFileUpload(factory); try{ List<FileItem> list = upload.parseRequest(req); //取出所有的表单,如从upload.jsp页面转来的username,password,file1,file2 for(FileItem item:list){ //判断是否是非file类型 if(item.isFormField()){ String name = item.getFieldName(); //取出表单中的值 String value = item.getString("gbk"); req.setAttribute(name, value); }else{ //取出路径及文件名: C:\Users\Bruce\Desktop\Jobs.txt,有的浏览器只有文件名,没有路径名 String name = item.getName(); int start = name.lastIndexOf("\\"); String fileName = name.substring(start+1); req.setAttribute(name, fileName); item.write(new File(path,fileName)); } } }catch (Exception e) { e.printStackTrace(); } req.getRequestDispatcher("upload/result2.jsp").forward(req,resp); } }
在web.xml文件中进行配置
<servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.test.servlet.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping>
发表评论
-
Struts2(18):Struts2深入探索续2
2011-06-06 03:15 624Struts2与Servlet是低耦合的,这可使项目不依赖于具 ... -
Struts2(17):Struts2深入探索续
2011-06-06 00:26 11611,struts2有属性驱动方式与模型驱动两种方式:之前的例子 ... -
Struts2(16): Struts2深入探索
2011-06-05 12:56 962先来看看struts2包中的一些配置文件: 1,strut ... -
Struts2(15):Struts2的国际化续
2011-06-04 23:38 945Struts2中action错误的国际化 在action类的 ... -
Struts2(14):Struts2的国际化
2011-06-04 02:44 918先看看JAVA的国际化实现:JAVA国际化是使用java.ut ... -
Struts2(13):Struts2的上传下载续2
2011-06-04 00:07 962本节主要介绍上传任意数据的文件、指定文件类型上传与Struts ... -
Struts2(12):Struts2的上传下载续
2011-05-29 12:40 951使用Struts2结束common的fileupload和io ... -
Struts2(10):Struts2的监听器与验权小例
2011-05-28 18:27 3083Struts2的监听器: 在xwork-2.0.7.jar包 ... -
Struts2(7):Struts2的输入校验框架(xml配置文件校验)
2011-05-22 22:00 3004上一节使用了Action类中的validate方法进行校验,此 ... -
Struts2(6):Struts2的输入校验2
2011-05-22 18:13 1115遇到类型转换错误的时候(也就是说不能进行类型转换),strut ... -
Struts2(5):Struts2的输入校验
2011-05-22 16:23 11571,Register.jsp,一个注册页面,包括用户名,密码, ... -
Struts2(4):Struts2类型转换2
2011-05-22 12:35 11011,修改上一节的input.jsp文件 <s:form ... -
Strtus2(3):struts2的类型转换
2011-05-21 23:34 10421,新建一个Point类,包含两个变量x,y。只有set,ge ... -
Struts2(2):Struts2的输入检验
2011-05-21 12:44 9801:新建一个login2.jsp,使用Struts2的标签编写 ... -
Struts2(1):入门与配置
2011-05-21 11:51 5891,在MyEclipse中新建一个WEB工程:struts2d ... -
Struts2(9):开发自己的Struts2拦截器(编码与配置)
2011-05-15 21:16 1555要开发自己的Struts2拦截器类,需要实现Inte ... -
Struts2(8):拦截器的简单实现原理
2011-05-15 18:29 898什么是拦截器: 拦截器,在AOP(Aspect-Oriente ...
相关推荐
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。"HelloWorld"是学习任何新技术时的入门示例,Struts2也不例外。这个例子通常帮助开发者了解如何在...
Struts2提供了一套完善的机制来处理文件上传,包括图片。本文将详细讲解如何利用Struts2实现图片上传并进行预览。 一、Struts2文件上传基础 1. 添加依赖:在项目中,你需要添加Struts2的核心库和文件上传插件。...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
- **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松实现文件上传功能;同时也可以配置下载功能,满足文件分发的需求。 - **权限控制**:利用拦截器实现细粒度的权限控制,确保只有授权用户才能访问敏感...
该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...
在"struts2上传下载项目"中,我们可以深入理解如何利用Struts2实现文件的上传与下载功能。 首先,上传功能在Web应用中十分常见,比如用户在注册时上传头像,或者提交文档等。在Struts2中,我们主要借助`struts2-...
3. **后渗透操作**:一旦漏洞被成功利用,工具可能包含进一步的脚本或命令,以便进行如文件上传、下载、系统命令执行等后渗透活动。 **防范措施** 为了防止Struts2漏洞被利用,开发者和管理员应采取以下策略: 1....
4. **插件支持**:Struts2拥有丰富的插件库,可以实现AJAX、上传下载、国际化、数据验证等功能。例如,Struts2-dojo-plugin提供了与Dojo库的集成,使得Web应用可以使用富客户端功能。 5. **异常处理**:Struts2提供...
16. struts.multipart.maxSize:这是multipart请求信息的最大尺寸(文件上传用),Struts2用于限制文件上传的尺寸。 17. struts.multipart.parser:这是一个multipart请求解析器,Struts2用于处理multipart请求。 ...
11. **开发工具集成**:Eclipse、IntelliJ IDEA等IDE都有Struts2的插件,可以帮助开发者更便捷地创建和调试Struts2应用。 12. **安全性**:Struts2历史上曾出现过一些安全漏洞,如著名的CVE-2017-5638(Struts2远程...
在这个"struts2上传和下载文件详细源码"中,我们可以深入理解Struts2如何处理文件上传和下载操作。 1. 文件上传: 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。首先,需要在struts.xml配置文件...
在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...
3. **强大的拦截器机制**:Struts2提供了丰富的内置拦截器,可以方便地处理如文件上传/下载、验证等功能。 4. **国际化支持**:Struts2支持多语言的应用开发,可以通过配置实现不同语言的界面显示。 5. **丰富的标签...
在Struts2中,实现文件上传和下载是常见的需求,对于用户交互和数据交换至关重要。这篇博客文章可能详细讨论了如何在Struts2框架中实现这两个功能。 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,这是...
Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、文件上传等。在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。...