<%--
Created by IntelliJ IDEA.
User: elliott
Date: 2017/9/16
Time: 15:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--enctype="multipart/form-data" 提交文件必须要加上--%>
package com.lanou.action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.List;
/**
* 用于注册的Action
*/
public class RegisterAction extends ActionSupport {
// 定义各种接收参数的属性
private String useranme;
private String password;
private String repassword;
private String sex;
private String resex;
private String[] hobby;
private String address;
// 文件对象
//private List
private File photo;
private String desc;
// 文件名字 File的属性名+FileName
private String photoFileName;
// 文件字段的类型 File的属性名+ContentType
private String photoContentType;
@Override
public String execute() throws Exception {
FileUtils.copyFile(photo, new File("upload/" + photoFileName));
return SUCCESS;
}
public void setUseranme(String useranme) {
this.useranme = useranme;
}
public String getUseranme() {
return useranme;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
public String getRepassword() {
return repassword;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setResex(String resex) {
this.resex = resex;
}
public String getResex() {
return resex;
}
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
public File getPhoto() {
return photo;
}
public void setPhoto(File photo) {
this.photo = photo;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
public String getPhotoFileName() {
return photoFileName;
}
public void setPhotoFileName(String photoFileName) {
this.photoFileName = photoFileName;
}
public String getPhotoContentType() {
return photoContentType;
}
public void setPhotoContentType(String photoContentType) {
this.photoContentType = photoContentType;
}
}
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
2097152
jpg,gif,png
image/gif,image/png,image/jpeg
${contentType}
attachment;filename=${downLoadFileName}
inputStream
<%--
Created by IntelliJ IDEA.
User: elliott
Date: 2017/9/16
Time: 16:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--定义一个 url 网址--%>
<%-- download.action?fileName=飞机05.gif --%>
package com.lanou.action;
import com.lanou.utils.DownloadUtils;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import java.io.*;
public class DownLoadAction extends ActionSupport {
private String fileName;
private InputStream inputStream;
private String contentType;
private String downLoadFileName;
@Override
public String execute() throws Exception {
// fileName = new String(fileName.getBytes("ISO-8859-1"), "UTF-8");
// System.out.println(fileName);
return SUCCESS;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
/**
* 生成下载时 需要的文件流
* @return
* @throws UnsupportedEncodingException
* @throws FileNotFoundException
*/
public InputStream getInputStream() throws UnsupportedEncodingException, FileNotFoundException {
// 文件名 乱码转换
fileName = new String(fileName.getBytes("ISO-8859-1"), "UTF-8");
// 根据文件名生成 文件流 提供给下载时使用
FileInputStream fis = new FileInputStream("upload/" + fileName);
return fis;
}
/**
* 生成下载时候需要的ContentType
* @return
*/
public String getContentType() {
// 获取当前文件的 MimeType
String type = ServletActionContext.getServletContext().getMimeType(fileName);
return type;
}
/**
* 生成下载的时候需要的文件名
* @return
* @throws UnsupportedEncodingException
*/
public String getDownLoadFileName() throws UnsupportedEncodingException {
String name = DownloadUtils.getDownloadFileName(ServletActionContext.getRequest().getHeader("user-agent"), fileName);
return name;
}
}