文件上传工具类
public final class UploadFileUtil[size=medium][/size] {
public final static String FILE_UPLOAD_DIR = "/upload/";
public static String uploadFile(File file,String filePath,String fileName) throws IOException{
File dir=new File(filePath);
if(!dir.exists()){
//dir.mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
dir.mkdir();
}
//获得上传文件的输入流
InputStream is=new BufferedInputStream(new FileInputStream(file));
File fileSave=new File(filePath,fileName);
//创建上传文件的输出流
OutputStream os=new FileOutputStream(fileSave);
int length=0;
byte[] buffer=new byte[1024];
while((length=is.read(buffer,0,1024))!=-1){
os.write(buffer, 0,1024);
}
os.close();
is.close();
return fileName;
}
}
Action类
public class Jkda01 implements Action {
private File pic;
private String picUrl;
private String picFileName;
private String picContentType;
public Jkda01() {
}
public File getPic() {
return pic;
}
public void setPic(File pic) {
this.pic = pic;
}
public String getPicUrl() {
return picUrl;
}
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getPicFileName() {
return picFileName;
}
public void setPicFileName(String picFileName) {
this.picFileName = picFileName;
}
public String getPicContentType() {
return picContentType;
}
public void setPicContentType(String picContentType) {
this.picContentType = picContentType;
}
public String upload() {
if (pic != null && pic.length() != 0) {
System.out.println(pic);
System.out.println(picFileName);
System.out.println(picContentType);
ServletContext sc = ServletActionContext.getServletContext();
try {
UploadFileUtil.uploadFile(pic, sc
.getRealPath(UploadFileUtil.FILE_UPLOAD_DIR),
picFileName);
System.out.println("url:" + UploadFileUtil.FILE_UPLOAD_DIR
+ picFileName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件上传异常:" + e.getMessage());
}
}
return "upload";
}
}
struts2的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="upload" class="com.xyh.jkda.action.Jkda01">
<!--maximumSize 上传大小allowedTypes 上传类型-->
<param name="maximumSize">10240000000</param>
<param name="allowedTypes"> image/pjpeg,image/gif,image/bmp,image/x-png</param>
<interceptor-ref name="defaultStack" />
<result name="upload">upload.jsp</result>
<result name="input">index.jsp</result>
</action>
</package>
</struts>
页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<s:form action="upload!upload" enctype="multipart/form-data" method="post">
<s:textfield name="fileNamel" label="文件名称:"></s:textfield>
<s:file name="pic" contentEditable="false"></s:file>
<s:submit></s:submit>
</s:form>
</body>
</html>
- 描述: 文件上传
- 大小: 16 KB
分享到:
相关推荐
### Struts2 配置文件详解 #### 一、引言 在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)...
在Struts2中,文件上传是常见的功能,允许用户通过表单提交文件到服务器。为了处理不同类型的文件,Struts2支持识别和处理多种文件格式。以下是对Struts2中涉及的文件类型及其MIME类型的详细说明: 1. **应用型文件...
在2.3.20版本中,可能会包含一些修复的安全漏洞,例如CVE-2011-2731和CVE-2014-0114,这些都是Struts2历史上著名的安全问题,涉及远程代码执行风险。研究这些修复,可以让你了解如何避免类似的安全问题。 源码包中...
2. **配置文件(Configuration Files)**:Struts2的配置文件通常包括struts.xml或struts.properties,它们定义了Action、结果类型、拦截器栈等。通过配置文件,开发者可以指定Action与URL的映射关系,设置默认结果...
Struts2文件上传是一个常见的需求,在Web应用中,用户可能需要上传图片、文档等各类文件。Apache Struts2框架提供了方便的文件上传功能。本教程将详细介绍如何在Struts2中实现文件上传。 首先,我们需要在项目的WEB...
1. **struts.xml**:这是Struts2的主配置文件,定义了Action类、结果页面、拦截器等。在这个文件中,你可以看到Action的配置,如Action类的全限定名、处理的HTTP方法(GET或POST)、结果页面的跳转等。 2. **Action...
5. **XWork2**:Struts2是在XWork框架的基础上发展起来的,XWork提供了Action管理和执行的核心机制,包括ActionContext、ValueStack等关键组件。 6. **运行流程**:当一个请求到达服务器,Struts2框架会解析`struts...
标签"struts2专用包1.rar"进一步确认了这些文件与Struts2框架的专属性。通常,这样的压缩包会帮助开发者快速搭建Struts2项目环境,或者提供解决特定问题的解决方案。 压缩包子文件的文件名称列表提到了"struts2专用...
2. **jQuery代码**:在事件处理函数中,使用`$.ajax()`或`$.getJSON()`发送请求到Struts2的Action,附带上选中的专业类别ID。 3. **Struts2后端**:创建一个Action,接收前端发送的请求,根据ID查询数据库(或读取...
3. **配置文件编辑器**:插件提供了Struts2配置文件(struts.xml)的专用编辑器,具有语法高亮、错误检查和自动格式化等功能,使得配置文件的编写更加直观和准确。 4. **标签库支持**:Struts2的标签库在JSP页面中...
此外,书中还详细解读了Struts2的配置文件,讲解了类型转换和拦截器机制。总之,《精通Struts2》系统地覆盖了Struts2框架的基础知识、实战应用以及关键特性的深度解析,对于想要学习或提升Struts2技能的开发者来说,...
Struts2是一款非常流行的开源Java Web框架,它提供了一种模型-视图-控制器(MVC)架构,帮助开发者构建可维护性和可扩展性良好的Web应用程序。然而,随着时间的推移,Struts2框架出现了一些安全漏洞,这些漏洞可能被...
这个"struts2的小例子"是专为初学者设计的,旨在帮助他们快速理解和掌握Struts2的核心概念和用法。 在Struts2框架中,主要包含以下几个关键组件: 1. **Action类**:这是业务逻辑处理的主要场所,通常继承自`org....
3. **配置文件**:在day01的学习中,你可能会接触到如何编写struts.xml文件,它是Struts2的主配置文件,用于配置Action、Action的输入输出结果、包(package)等。配置文件中的元素和属性将决定框架如何处理请求和...
《Struts2 In Action》是一本专为Java开发者设计的实战指南,旨在深入解析Struts2框架的使用与实践。Struts2作为一款强大的MVC(Model-View-Controller)框架,极大地简化了Java Web应用的开发流程,提高了开发效率...
这个"Struts2应用程序示例"是专为初学者和开发者设计的,它利用Eclipse 3.3作为集成开发环境,JDK 6.0作为Java运行环境,以及Tomcat 6.0作为应用服务器,提供了实际操作的平台来理解和实践Struts2的核心概念。...
1. **配置文件**:讲解了Struts2的基础配置,如struts.xml,它是整个框架的配置中心,用于定义Action、结果类型、拦截器栈等。 2. **Action与结果映射**:详细解释了如何定义Action类以及如何通过结果类型映射...
4. **创建分页标签库**:Struts2支持自定义标签,你可以创建一个`.tld`文件来定义分页标签。标签库应该包含开始、结束、上一页、下一页等标签,以便在视图层中方便地使用。 5. **实现标签处理类**:对应的Java类...
综上所述,《Struts2 in Action》中文版不仅介绍了Struts2框架的基本原理和架构,还深入探讨了如何利用Struts2来构建高效、可维护的Web应用。无论是初学者还是有经验的开发者,都能从这本书中获得宝贵的指导和启发。
这个入门例子是专为初学者设计的,旨在帮助他们快速掌握Struts2框架的基础知识和在MyEclipse中的应用。 首先,我们需要了解Struts2的基本架构。Struts2的核心是Action类,它是业务逻辑处理的中心。每个Action对应一...