1.struts.xml
<?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="hejie" extends="struts-default">
<action name="update" class="com.st.action.UpdateAction"
method="update">
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型,多个用","分隔 -->
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png,
image/pjpeg
</param>
<!-- 配置允许上传的文件大小,单位字节 -->
<param name="maximumSize">102400</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<param name="savePath">/updateImage</param>
<result name="success">success.jsp</result>
</action>
<action name="down" class="com.st.action.UpdateAction" method="down">
<!-- 下载现有文件 -->
<param name="inputPath">/downImage</param>
<!-- 初始文件名 -->
<param name="fileName">${downFileName}</param>
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">downInputStream</param>
<!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
<param name="contentDisposition">attachment;filename="${downFileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
</package>
</struts>
2.jsp
<body>
<form action="update.action" method="post" enctype="multipart/form-data">
<input type="file" name="name"/><br>
<input type="submit"/>
</form>
<hr>
<a href="down.action?downFileName=56585906195.jpg">下载图片</a>
</body>
3.action
package com.st.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
public class UpdateAction {
private File name;
private String nameFileName;
private String nameContentType;
private String savePath;
//========
private String downFileName;
private InputStream downInputStream;
private String inputPath;
/**
* 上传文件控制类
* @return 转页
* @throws Exception
*/
public String update() throws Exception {
// TODO Auto-generated method stub
System.out.println(this.nameContentType+" "+this.nameFileName);
this.saveFile();
return "success";
}
/**
* 将文件存到服务器
* save file
* @return dir 文件存储的路径
* @throws Exception
*/
public String saveFile()throws Exception{
String dir = (new Date().getTime()+"").substring(5)+this.getNameFileName();
String realPath = ServletActionContext.getRequest().getRealPath(getSavePath())
+ "\\" + dir;
FileOutputStream fos = new FileOutputStream(realPath);
FileInputStream fis = new FileInputStream(this.name);
byte[] b = new byte[100];
while((fis.read(b))!=-1){
fos.write(b);
}
fos.close();
fis.close();
dir = this.savePath+"\\"+dir;
return dir;
}
/**
* 下载文件控制方法
* @return 转页
* @throws Exception
*/
public String down()throws Exception{
System.out.println("---down---");
String realNPath = ServletActionContext.getRequest().getRealPath(this.inputPath);
downInputStream = new FileInputStream(realNPath+"\\"+this.getDownFileName());
return "success";
}
//===========getter
public File getName() {
return name;
}
public void setName(File name) {
this.name = name;
}
public String getNameFileName() {
return nameFileName;
}
public void setNameFileName(String nameFileName) {
this.nameFileName = nameFileName;
}
public String getNameContentType() {
return nameContentType;
}
public void setNameContentType(String nameContentType) {
this.nameContentType = nameContentType;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getDownFileName() {
return downFileName;
}
public void setDownFileName(String downFileName) {
this.downFileName = downFileName;
}
public InputStream getDownInputStream() {
return downInputStream;
}
public void setDownInputStream(InputStream downInputStream) {
this.downInputStream = downInputStream;
}
public String getInputPath() {
return inputPath;
}
public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
}
分享到:
相关推荐
在"struts2上传下载项目"中,我们可以深入理解如何利用Struts2实现文件的上传与下载功能。 首先,上传功能在Web应用中十分常见,比如用户在注册时上传头像,或者提交文档等。在Struts2中,我们主要借助`struts2-...
Struts2上传下载,可以更方便的让大家学习、使用
在"struts2 上传下载"这个主题中,我们主要关注的是如何在Struts2框架下实现文件上传和下载的功能。这一知识点对于任何需要处理用户提交文件的Web应用程序都至关重要。 首先,我们需要了解Struts2的Action类,它是...
这篇博客文章“Struts2 上传下载模板”可能提供了关于如何在Struts2框架中实现这一功能的详细教程。 首先,我们来讨论文件上传。在Struts2中,文件上传通常依赖于`Apache Commons FileUpload`库,它处理了文件的多...
在"struts2上传下载+前端剪切图片"这个主题中,我们将探讨Struts2框架如何处理文件上传和下载功能,以及如何在前端实现图片的剪切操作。 **文件上传**: 在Struts2中,文件上传主要依赖于Apache的Commons ...
在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
在Struts2中,实现文件上传和下载功能是常见的需求,这对于用户交互和数据交换至关重要。本文档将深入讲解Struts2中如何进行文件上传和下载的代码实现及其流程。 首先,我们需要理解Struts2文件上传的核心组件:`...
在Struts2框架中,处理文件上传和下载功能是必不可少的一部分,尤其是在用户需要交互式地提交或获取文件的场景下。在这个“struts2 上传下载组建Jar”中,主要包括了两个关键的第三方库:`commons-io-1.4.jar`和`...
在Struts2中,文件上传和下载是常见的功能需求,尤其对于处理用户提交的表单数据时,如上传图片、文档等。这个"struts2_上传下载"实例则涵盖了多种实现这些功能的方法。 首先,Struts2的文件上传依赖于Apache的...
在Struts2中,上传和下载功能是常见的需求,特别是在处理用户交互和数据交换时。这个“Struts2上传下载组件”就是为了满足这种需求而设计的。让我们深入探讨一下这个组件的工作原理以及如何在实际项目中使用它。 ...
Struts2作为一款流行的Java Web框架,为开发者提供了丰富的功能,其中包括文件上传和下载的处理。在Struts2中,实现文件上传下载是一项常见的任务,它涉及到HTTP协议、MIME类型、临时文件处理以及流的读写等多个方面...