上传下载

<%--

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 photo;

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

/index.jsp

 

 

${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;

}

}

 

 

你可能感兴趣的:(上传下载)