您的位置:首页 > 编程语言 > Java开发

struts2文件上传下载

2015-11-04 21:47 369 查看

一、文件上传

1、编写上传页面

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
<s:form action="/upload/upload.action" enctype="multipart/form-data">
<s:file name="file" label="文件"></s:file>
<s:submit value="保存"></s:submit>
</s:form>
</body>
</html>


2、配置struts配置文件

<package name="upload" namespace="/upload" extends="struts-default">
<action name="upload" method="upload" class="upload.Upload">
<interceptor-ref name="defaultStack">
<!--最大字节数-->
<param name="fileUpload.maximumSize">5242880</param>
<!--允许的后缀类型-->
<param name="fileUpload.allowedExtensions">.bmp,.jpg,.png</param>
</interceptor-ref>
<result>/index.jsp</result>
</action>
</package>


3、编写action

public class Upload extends ActionSupport {

private File file;//和文件域的名字一样

private String fileFileName;//文件名

private String fileContentType;//文件类型

public String upload(){
System.out.println(file.length());
System.out.println(fileFileName);
System.out.println(fileContentType);
return SUCCESS;
}
public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public String getFileContentType() {
return fileContentType;
}

public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}

}


二、文件下载

1、编写Action

public class Download extends ActionSupport {
private InputStream fileIn;//要下载的资源的输入流
private String filename;//下载的文件名

public String download() throws UnsupportedEncodingException, FileNotFoundException {
//得到文件路径
String realPath = ServletActionContext.getServletContext().getRealPath("/111.jpg");
filename = FilenameUtils.getName(realPath);
filename = URLEncoder.encode(filename, "UTF-8");//中文文件名下载乱码
fileIn = new FileInputStream(realPath);
return SUCCESS;
}

public InputStream getFileIn() {
return fileIn;
}

public void setFileIn(InputStream fileIn) {
this.fileIn = fileIn;
}

public String getFilename() {
return filename;
}

public void setFilename(String filename) {
this.filename = filename;
}
}


2、配置struts配置文件

<package name="download" namespace="/download" extends="struts-default">
<action name="download" class="upload.Download" method="download">
<!--下载的结果需要配置为stream-->
<result type="stream">
<param name="inputName">fileIn</param>
<!-- 动态获取下载的文件名:在该配置文件中使用OGNL表达式 。就相当于调用当前动作的getFilename方法-->
<param name="contentDisposition">attachment;filename=${filename}</param>
<!--告诉客户端文件的MIME类型-->
<param name="container">application/octet-stream</param>
</result>
</action>
</package>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts 上传 下载