- 浏览: 3567249 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
2、新建Action
第一种方式
package com.ljq.action; import java.io.File; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class UploadAction extends ActionSupport{ private File image; ="color: #008000;">上传的文件 private String imageFileName; //文件名称 private String imageContentType; //文件类型 public String execute() throws Exception { String realpath = ServletActionContext.getServletContext().getRealPath("/images"); //D:\apache-tomcat-6.0.18\webapps\struts2_upload\images System.out.println("realpath: "+realpath); if (image != null) { File savefile = new File(new File(realpath), imageFileName); if (!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs(); FileUtils.copyFile(image, savefile); ActionContext.getContext().put("message", "文件上传成功"); return "success"; } public File getImage() { return image; } public void setImage(File image) { this.image = image; } public String getImageFileName() { return imageFileName; } public void setImageFileName(String imageFileName) { this.imageFileName = imageFileName; } public String getImageContentType() { return imageContentType; } public void setImageContentType(String imageContentType) { this.imageContentType = imageContentType; } }
第二种方式
package com.ljq.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class UploadAction2 extends ActionSupport { // 封装上传文件域的属性 private File image; // 封装上传文件类型的属性 private String imageContentType; // private String imageFileName; // 接受依赖注入的属性 private String savePath; @Override public String execute() { FileOutputStream fos = null; FileInputStream fis = null; try { // 建立文件输出流 System.out.println(getSavePath()); fos =new FileOutputStream(getSavePath() + "\\" + getImageFileName()); // 建立文件上传流 fis = new FileInputStream(getImage()); byte[] buffer = new byte[1024]; int len = ; while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); } } catch (Exception e) { System.out.println("文件上传失败"); e.printStackTrace(); } finally { close(fos, fis); } return SUCCESS; } /** * 返回上传文件的保存位置 * * @return *"color: #000000;"> public String getSavePath() throws Exception{ return ServletActionContext.getServletContext().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } public File getImage() { return image; } public void setImage(File image) { this.image = image; } public String getImageContentType() { return imageContentType; } public void setImageContentType(String imageContentType) { this.imageContentType = imageContentType; } public String getImageFileName() { return imageFileName; } public void setImageFileName(String imageFileName) { this.imageFileName = imageFileName; } private le="color: #000000;"> close(FileOutputStream fos, FileInputStream fis) { if (fis != null) { try { fis.close(); } catch (IOException e) { System.out.println("FileInputStream关闭失败"); e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { System.out.println(FileOutputStream关闭失败"); e.printStackTrace(); } } } }
struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dt"color: #000000;">"> <struts> <!-- 该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。 如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 --> <constant name="struts.action.extension" value="do" /> <!----> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value"true" /> <!-- 开发模式下使用,这样可以打印出更详细的错误信息 --> <constant name="struts.devMode" value="true" /> <!-- 默认的视图主题 --> <constant name="" value="simple" /> <!--<constant name="struts.objectFactory" value="spring" />--> <!--解决乱码 --> <constant name="struts.i18n.encoding"="UTF-8" /> <!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) --> <constant name="struts.multipart.maxSize" value="10701096"/> <!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir --> <constant name="struts.multipart.saveDir " value="d:/tmp" /> <package name="upload" namespace="/upload" extends="struts-default"> <action name"*_upload" class="com.ljq.action.UploadAction" method="{1}"> <result name="success">/WEB-INF/page/message.jsp</result> action> </package> <package name="upload2" extends="struts-default"> <action name="upload2" class="com.ljq.action.UploadAction2"color: #000000;"> method="execute"> <!-- 动态设置savePath的属性值 --> <param name="savePath">/images</param> <result name="success">/WEB-INFpage/message.jsp</result> <result name="input">/upload/upload.jsp</result> <interceptor-ref name="fileUpload"> <!-- 文件过滤 <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param> <!-- 文件大小, 以字节为单位 --> <param name="maximumSize"></param> </interceptor-ref> <!-- 默认拦截器必须放在fileUpload之后,否则无效 --> <interceptor-ref name="defaultStack" /> </action> </package </struts>
上传表单页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix"s" %> <!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"> </head> <body> <!-- ${pageContext.request.contextPath}/upload/execute_upload.do --> <!-- ${pageContext.request.contextPath}/upload2/upload2.do --><form action="${pageContext.request.contextPath}/upload2/upload2.do" enctype="multipart/form-data" method="post"> 文件:<input type="file" name="image"> <="submit" value="上传" /> </form> <br/> <s:fielderror /> </body> </html>
显示结果页面
<�ode"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>上传成功</title> <meta http-equiv="pragma" content="no-cache"#000000;">> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head><body> 上传成功! <br/><br/> <!-- ${pageContext.request.contextPath} tomcat部署路径, 如:D:\apache-tomcat-6.0.18\webapps\struts2_upload\ --> <img src="${pageContext.request.contextPath}/<s:property value="'images/'+<�000000;">imageFileName"/>"> <s:debug></s:debug> </body> </html>
发表评论
-
struts2的执行机制
2012-10-21 18:37 1634struts2是web应用中一个常用的mvc框架,下面探 ... -
Struts 2请求处理流程 命令模式2
2012-10-16 16:20 1800将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。 ... -
Struts 2请求处理流程 命令模式
2012-10-16 16:15 2842Struts 2请求处理流程 2010-06 ... -
STRUTS2核心控制器:FilterDispatcher (写的真心清晰)
2012-10-16 16:07 37084STRUTS2核心控制 ... -
struts2源码阅读1
2012-10-16 11:09 1294Struts2源码阅读 ... -
Struts2实现的6位数字的验证码程序
2012-08-05 16:39 1262http://ipc.iteye.com/bl ... -
Struts2 异步跳转页面被js extjs jquery ajax 拦截(转)
2012-08-04 16:51 4992Struts2中使用getJSON方式进行 ... -
struts2 拦截器权限控制
2012-08-04 10:37 1720工程布局: 直 ... -
struts2学习的博客
2012-02-26 10:59 1279http://downpour.iteye.com/blog/ ... -
拦截器 参数不过去
2012-02-26 10:28 4625还是同样的问题,拦截器在以前学的时候,学的 ... -
struts 国际化乱码
2012-02-25 09:15 1766差不多半年没复习框架了,都在搞论文和打基础,什么算法和数 ... -
struts2国际化
2012-02-25 08:38 1514struts2国际化 在struts2中需要做国际化的有 ... -
struts2拦截器的实现
2012-02-25 08:39 1628如何使用struts2拦截 ... -
struts2连mysql乱码解决方法
2011-08-27 20:34 1555(2009-11-12 20:12:47) 转 ... -
关于json与struts2进行数据交互 (2010-11-02 20:17:33) 转载 标签: 杂谈 分类: java技术 为了怕以后的开发中出现同样的问
2011-06-26 21:20 2033关于json与struts2进行数据交互 (2010-1 ... -
struts2 jquery
2011-05-08 09:30 1686使用这个组合,感觉还是很方便灵活的。 1、将struts2的 ... -
struts2 <s:if> list map set 判断为空的问题
2011-04-25 13:18 8508<s:if test="#request.li ... -
struts2 标签 获取 request
2011-04-25 10:44 2408在Action中获取request方法一: 在Action ...
相关推荐
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在Struts2中,文件上传功能是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...
Struts2文件上传是Web开发中常见的功能,用于允许用户在网页上选择并上传本地文件到服务器。在Java Web环境中,Struts2框架提供了一套完整的解决方案来处理文件上传请求。下面将详细介绍Struts2文件上传的核心概念、...
在Struts 2中,文件上传功能是通过使用Struts 2的插件机制来实现的,这使得开发者能够方便地处理用户上传的文件。下面将详细讨论Struts 2文件上传的相关知识点。 ### 1. Struts 2文件上传原理 文件上传是基于HTTP...
"Struts2文件上传带进度条页面无刷新"的实现涉及多个技术点,包括Struts2的文件上传插件、AJAX异步通信以及前端进度条展示。 首先,Struts2的文件上传依赖于`struts2-upload-plugin`。这个插件扩展了Struts2的核心...
在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....