`
zhoujianghai
  • 浏览: 439115 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2.1.6实现(图片)文件的上传

阅读更多
1.首先创建一个FileUploadAction
package jxust.zjh.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Date;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport {
private String savePath;
private String myFileFileName;//获取的文件名
private File myFile;
private String myFileContentType;//获取文件的类型
private String fileName;

public File getMyFile() {
  return myFile;
}
public void setMyFile(File myFile) {
  this.myFile = myFile;
}

public String getMyFileFileName() {
  return myFileFileName;
}
public String getMyFileContentType() {
  return myFileContentType;
}
public void setMyFileFileName(String myFileFileName) {
  this.myFileFileName = myFileFileName;
}
public void setMyFileContentType(String myFileContentType) {
  this.myFileContentType = myFileContentType;
}

public String getFileName() {
  return fileName;
}
public void setFileName(String fileName) {
  this.fileName = fileName;
}
public void setSavePath(String savePath) {
  this.savePath = savePath;
}
public String getSavePath() {
  return savePath;
}
public String execute() throws Exception {
  
  String path = ServletActionContext.getServletContext().getRealPath(savePath);
  File imageFile = new File(path + "\\" +myFileFileName);
  System.out.println(imageFile);
  BufferedInputStream bis = null;//获取一个上传文件的输入流
  BufferedOutputStream bos = null;//获取一个上传文件的输出流
  try {
   bis = new BufferedInputStream(new FileInputStream(myFile));
   bos = new BufferedOutputStream(new FileOutputStream(imageFile));
  
   byte buf[] = new byte[(int)myFile.length()];
   int length = 0;
   while((length = bis.read(buf)) != -1) {
    bos.write(buf, 0, length);
   }
  
  } catch (Exception e) {
   e.printStackTrace();
  }finally {
   try {
    if(bis != null) {
     bis.close();
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  
   try {
    if(bos != null) {
     bos.close();
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  return SUCCESS;
}
}
2.配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
  <filter-name>struts2-cleanUp</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2-cleanUp</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
3.配置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.dtd">
<struts>
  <package name="fileUpload" extends="struts-default">
  
  <action name="fileUpload" class="jxust.zjh.action.FileUploadAction" >
  <param name="savePath">images</param>
  <result name="success">/uploadSuc.jsp</result>
  </action>
  
  </package>
</struts>
4.建一个上传页面index.jsp
<%@ 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>
  
  </head>
  
  <body>
   <s:form action="fileUpload" method="post" enctype="multipart/form-data">
   <s:file name="myFile" label="选择图片"/>
<s:submit value="上传"/>
   </s:form>
  </body>
</html>
5.上传成功后转向的页面uploadsuc.jsp
<%@ 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>
  
  </head>
  
  <body>
  <s:debug></s:debug>
    <h2>上传成功</h2>
    <hr>
<img alt="图片" src="<s:property value="savePath + '/'+myFileFileName" />">
  </body>
</html>
运行时服务器控制台有如下输出 Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir
原因是struts.multipart.saveDir没有配置。struts.multipart.saveDir用于指定存放临时文件的文件夹,该配置写在struts.properties文件中。
可以在struts.properties文件加入如下代码解决:
struts.multipart.saveDir = /images
:上传成功的图片并不存放在myeclipse的workspace项目中,而是在tomcat中webapps下对应的项目中
分享到:
评论

相关推荐

    struts2.1.6-lib

    - `commons-fileupload.jar` 和 `commons-io.jar`: 这两个库支持文件上传功能,使用户能够通过Web表单上传文件到服务器。 3. **插件和支持库**: Struts2还提供了一系列插件,如 strut2-convention-plugin、struts2...

    struts2.1.6jar all.zip

    在描述中提到,之前上传的"struts2.1.6jar all.zip"文件出现了错误,里面包含了Hibernate的内容,而实际上应该是与Struts2相关的文件。因此,这里我们需要关注的是正确的Struts2.1.6版本,确保它包含所有必要的组件...

    struts2.1.6lib

    Struts2.1.6是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。这个版本的lib目录包含了运行Struts2应用所需的所有核心类库,这些类库使得开发者能够构建...

    关于struts2.1.6上传图片到数据库的简单项目

    以上就是使用Struts2.1.6将图片上传到MySQL数据库的简单项目实现过程。通过这个项目,我们可以学习到Struts2的文件上传、数据库操作以及在页面上显示二进制数据等核心概念。在实际应用中,你可能还需要考虑错误处理...

    struts2.1.6jar包

    Struts2.1.6.jar包是Struts2框架的一个版本,它在Java企业级开发(J2EE)中扮演着重要角色。Struts2是一个开源的MVC(Model-View-Controller)框架,用于构建可维护性高、结构清晰且易于测试的Web应用程序。相比于它...

    struts2.1.6

    - Struts2的插件机制允许扩展框架功能,如文件上传、RESTful服务、JSON支持等。 总之,Struts2.1.6版本是一个简洁但功能强大的Web开发框架,它通过灵活的配置和强大的插件体系,为开发者提供了高效、便捷的Java ...

    struts2.1.6的jar包

    使用Struts2.1.6时,开发者需要根据项目需求选择合适的jar包和插件,并结合Struts2的配置文件(通常为struts.xml)进行应用的搭建和定制。此外,Struts2的安全性也是需要注意的一点,比如它曾出现过一个著名的远程...

    struts2.1.6-jar包

    Struts2.1.6-jar包是Apache Struts框架的一个特定版本,它包含了用于构建MVC(模型-视图-控制器)Web应用程序所需的所有组件。这个版本的Struts是基于Java开发的,旨在提供一个强大、灵活且可扩展的框架,帮助开发者...

    Struts2.1.6jar包

    - commons-fileupload.jar:文件上传支持。 - commons-lang3.jar:Apache Commons Lang库,提供了一些常用的字符串和对象处理函数。 - servlet-api.jar:Servlet API,用于与Web服务器交互。 - jstl.jar:JSTL标签库...

    struts2.1.6 所必须的6个jar包

    这些JAR文件共同构成了Struts2.1.6的基础结构,确保了框架的稳定运行和功能实现。在开发基于Struts2的Web应用时,正确导入这些依赖库是至关重要的。开发者需要理解每个库的功能,以便更好地利用Struts2提供的强大...

    struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02部分

    由于所用到的包比较多,文件上传的最大值被限制在20M,所以只好分成两个资源上传。 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 01部分 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02...

    struts-2.1.6.lib.rar

    7. **Commons FileUpload**:fileupload.jar 支持文件上传功能,Struts 2通过这个库处理用户上传的文件。 8. **Commons Lang**:commons-lang3.jar 提供了Java语言工具类,增强了Java的内置功能,如字符串处理、...

    struts 2.1.6 类库

    Struts 2.1.6 类库是Apache Struts框架的一个特定版本,它在Java Web开发中被广泛用于实现Model-View-Controller (MVC)架构。SSH整合指的是Struts 2、Spring和Hibernate三个开源框架的集成,它们共同构成了一个强大...

    struts2.1.6+spring2.5+hibernate3.3.1

    `commons-fileupload-1.2.1.jar`处理文件上传,而`commons-logging-1.1.1.jar`和`freemarker-2.3.13.jar`分别用于日志记录和视图模板。 Spring2.5.6是依赖注入框架,同时也支持AOP(面向切面编程)。`spring-2.5.6....

    struts2.1.6 +spring2.5 +hibernate3.2整合开发的 jar包 _ 01部分

    由于所用到的包比较多,文件上传的最大值被限制在20M,所以只好分成两个资源上传。 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 01部分 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)

    Struts2.1.6引入了对文件上传的支持,因此需要commons-fileupload。为了实现全注解开发,还需struts2-convention-plugin和struts2-spring-plugin,后者用于整合Spring。 2. **Spring**:可以选择完整的jar包或精简...

    Ext+struts2.1.6+spring2+hibernate3的jar包

    标题 "Ext+struts2.1.6+spring2+hibernate3的jar包" 暗示了这是一个基于Java技术栈的Web应用程序开发框架集合。这个压缩包包含了一系列核心库,主要用于构建一个整合了Ext JS前端框架、Struts 2.1.6后端MVC框架、...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例

    在Struts2.1.6版本中,全注解的开发方式可以显著减少XML配置文件,提高开发效率。`struts2-core`、`xwork`、`ognl`、`freemarker`、`commons-logging`是其核心依赖,`struts2-convention-plugin`则支持注解配置,...

    struts-2.1.6-all.part2.rar

    struts-2.1.6-all.rar 马老师视频使用。官网上找不到了,传上来给有需要的同学。 由于上传文件大小限制,这是struts-2.1.6-all.part2.rar,解压还需下载struts-2.1.6-all.part1.rar

Global site tag (gtag.js) - Google Analytics