`

Struts2 实现文件简单上传

 
阅读更多

Action类代码:

package com.struts2_upload.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class UploadAction extends ActionSupport {
 
 private File myFile;//上传的文件
 private String myFileContentType;//上传文件的类型(变量取名必须myFile+ContentType格式)
 private String myFileFileName;//上传文件的名(变量取名必须myFile+FileName格式)
 
 public String execute(){
  
  try {
   //基于image创建一个文件输入流
   InputStream inp=new FileInputStream(myFile);
   
   //设置上传文件目录 
   String path=ServletActionContext.getServletContext().getRealPath("/upload");
   
   //设置目标文件
   File toFile=new File(path,this.getMyFileFileName());
   
   //创建一个输出流
   OutputStream out=new FileOutputStream(toFile);
   
   //设置缓存
   byte [] buffer=new byte[1024];
   int length=0;
   
   //读取image文件输出到toFile文件中
   while ((length=inp.read(buffer))>0) {
    out.write(buffer,0,length);
   }
   System.out.println(this.getMyFileFileName());
   System.out.println(this.getMyFileContentType());
   inp.close(); out.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return SUCCESS;
 }

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

 public String getMyFileContentType() {
  return myFileContentType;
 }

 public void setMyFileContentType(String myFileContentType) {
  this.myFileContentType = myFileContentType;
 }

 public String getMyFileFileName() {
  return myFileFileName;
 }

 public void setMyFileFileName(String myFileFileName) {
  this.myFileFileName = myFileFileName;
 }

}

 

struts.xml 配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

 <package name="default" namespace="/" extends="struts-default">
  <action name="uploadAction" class="com.struts2_upload.action.UploadAction">
   <result name="success">index.jsp</result>
  </action>
 </package>

</struts>    

 

index.jsp 页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</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">
 <script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.js"></script>
 <script type="text/javascript" src="js/jQuery.autoIMG.js"></script>
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 <script type="text/javascript">
  $(function(){
   $("#imgShow").autoIMG();//设置ID为imgShow的DIV中的图片等比例自动缩放
  });
 </script>
  </head>
  
  <body>
    
    <form action="uploadAction" method="post" enctype="multipart/form-data">
  上传图片: <input type="file" name="myFile" />
  <input type="submit" value="上传" />
 </form>
 
 <div id="imgShow" style="width:300px; height:200px; border:1px solid #FF0000;">
  <img alt="上传文件" src="${pageContext.request.contextPath}/<s:property value="'upload/'+myFileFileName"/>">
  <!-- ${pageContext.request.contextPath}获取当前项目的路径 -->
 </div>
  </body>
</html>

 
------------------------------------------------------------------------------------------------------------------------------------

详情见附件

分享到:
评论

相关推荐

    Struts2实现文件上传

    在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...

    struts2实现多文件上传下载

    网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...

    Struts2实现文件的上传下载

    在Struts2中,文件上传主要依赖于`org.apache.struts2.components.FileUpload`组件,这个组件是基于Commons FileUpload库实现的,它能够处理multipart/form-data类型的HTTP请求,这是文件上传所必需的格式。...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    Struts2多个文件上传

    首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...

    在Struts 2中实现文件上传

    在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    简单易懂的struts2文件上传

    本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述** 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。这个库提供了处理HTTP多部分...

    struts2框架下的文件上传

    Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、...在实际开发中,要根据项目需求,充分考虑性能、安全性和可维护性,合理选择和实现文件上传功能。

    struts2实现文件上传(单个+多个文件上传

    ### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...

    struts2的实现文件上传的例子

    在这个“struts2的实现文件上传的例子”中,我们将深入探讨如何利用Struts2框架来实现文件上传功能,并将其与MySQL数据库集成。 首先,我们需要在Struts2项目中配置Action类,这个类将负责处理文件上传请求。在...

    用struts1实现文件的上传和下载

    在这个项目中,我们将探讨如何利用Struts1来实现文件的上传和下载功能。 首先,我们需要理解文件上传的基本流程。在Web应用中,用户通过表单提交包含文件的POST请求到服务器。Struts1框架接收到这个请求后,会使用`...

    struts2实现单个图片上传

    在本教程中,我们将深入探讨如何利用Struts2实现单个图片的上传功能,无需JavaScript的额外开发。 首先,我们需要理解图片上传的基本流程。用户通过浏览器选择一张图片,然后该图片的文件数据被发送到服务器。...

    struts2 简单的文件上传

    在Struts2框架下实现文件上传,需要理解以下几个核心概念和步骤: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体。你需要创建一个继承自`org.apache.struts2.interceptor.FileUploadInterceptor`支持...

    struts2+jquery+ajax文件异步上传

    这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的...

    struts2文件上传例子.rar

    总的来说,这个例子展示了如何在Struts2框架下实现文件上传功能,包括Action的编写、配置文件的设定、表单的创建以及文件处理逻辑。通过学习这个例子,开发者可以了解到Struts2处理文件上传的基本流程,为自己的项目...

    Struts+swfupload实现文件上传功能

    在本文中,我们将深入探讨这两个组件以及如何将它们整合以实现文件上传。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织和管理Web应用的方式,使得开发者可以更...

    struts2文件上传下载

    在Struts2框架中实现文件上传和下载功能,是Web开发中常见的需求。Struts2作为一个成熟的MVC框架,提供了简单的API和标记库来处理文件上传下载的业务逻辑。下面是基于给定文件内容的知识点详细说明。 ### Struts2...

Global site tag (gtag.js) - Google Analytics