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框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...
网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...
在Struts2中,文件上传主要依赖于`org.apache.struts2.components.FileUpload`组件,这个组件是基于Commons FileUpload库实现的,它能够处理multipart/form-data类型的HTTP请求,这是文件上传所必需的格式。...
本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...
首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...
本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述** 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。这个库提供了处理HTTP多部分...
Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、...在实际开发中,要根据项目需求,充分考虑性能、安全性和可维护性,合理选择和实现文件上传功能。
### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...
在这个“struts2的实现文件上传的例子”中,我们将深入探讨如何利用Struts2框架来实现文件上传功能,并将其与MySQL数据库集成。 首先,我们需要在Struts2项目中配置Action类,这个类将负责处理文件上传请求。在...
在这个项目中,我们将探讨如何利用Struts1来实现文件的上传和下载功能。 首先,我们需要理解文件上传的基本流程。在Web应用中,用户通过表单提交包含文件的POST请求到服务器。Struts1框架接收到这个请求后,会使用`...
在本教程中,我们将深入探讨如何利用Struts2实现单个图片的上传功能,无需JavaScript的额外开发。 首先,我们需要理解图片上传的基本流程。用户通过浏览器选择一张图片,然后该图片的文件数据被发送到服务器。...
在Struts2框架下实现文件上传,需要理解以下几个核心概念和步骤: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体。你需要创建一个继承自`org.apache.struts2.interceptor.FileUploadInterceptor`支持...
这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的...
总的来说,这个例子展示了如何在Struts2框架下实现文件上传功能,包括Action的编写、配置文件的设定、表单的创建以及文件处理逻辑。通过学习这个例子,开发者可以了解到Struts2处理文件上传的基本流程,为自己的项目...
在本文中,我们将深入探讨这两个组件以及如何将它们整合以实现文件上传。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织和管理Web应用的方式,使得开发者可以更...
在Struts2框架中实现文件上传和下载功能,是Web开发中常见的需求。Struts2作为一个成熟的MVC框架,提供了简单的API和标记库来处理文件上传下载的业务逻辑。下面是基于给定文件内容的知识点详细说明。 ### Struts2...