FileUtils copyFile的文件上传,下载

JSP页面

<form action="fileUpload1.action" 
	method="POST" 
	enctype="multipart/form-data">
	<input type="file" name="file1" />
	<input type="submit" value="上传文件" />
</form>
<a href="download.action?filename=XXX"> download.action?filename=XXX 路径中加文件名,下载文件的方式</a>

上传的Action

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

public class FileUploadAction  {
	private File file1;
	private String file1FileName;
	private String file1ContentType;
	public String execute(){
		try {
			//文件的存放路径
			File outFile= new File("/home");
			if (!outFile.exists()) {
				outFile.mkdirs();
			}
			String outName ="/home/"   + file1FileName;
			File destFile = new File(outName);

			/*方式三:
			FileChannel inputChannel =new FileInputStream(file1).getChannel();
			FileChannel outputChannel = new FileOutputStream(destFile).getChannel();
			outputChannel.transferFrom(inputChannel, 0, inputChannel.size());*/
			//方式二:使用FileUtils工具类
			FileUtils.copyFile(file1, destFile);
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		return "success";
	}

	public File getFile1() {
		return file1;
	}
	public void setFile1(File file1) {
		this.file1 = file1;
	}
	public String getFile1FileName() {
		return file1FileName;
	}
	public void setFile1FileName(String file1FileName) {
		this.file1FileName = file1FileName;
	}
	public String getFile1ContentType() {
		return file1ContentType;
	}

	public void setFile1ContentType(String file1ContentType) {
		this.file1ContentType = file1ContentType;
	}
}

下载的Action

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class DownloadAction {
	
	private String filename;
	private InputStream downloadFile;
	public String execute() throws FileNotFoundException{
		String dir = "/home/"; //下载到的路径
		String filex = dir + filename;
		downloadFile = new FileInputStream(filex); 
		return "success";
	}

	public String getFilename() {
		return filename;
	}

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

	public InputStream getDownloadFile() {
		return downloadFile;
	}

	public void setDownloadFile(InputStream downloadFile) {
		this.downloadFile = downloadFile;
	}
}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd" >
<struts>

	<constant name="struts.devMode" value="true"></constant>

	<constant name="struts.multipart.maxSize" value="10485760"></constant>
	
	<package name="a1" namespace="/"  extends="struts-default">
		<action name="fileUpload1" class="com.zte.FileUploadAction" method="execute">
		<result name="success">/fileUploadSuc.jsp</result>
		<interceptor-ref name="defaultStack">
			<param name="fileUpload.maximumSize">10485760</param>
		</interceptor-ref>	 
		</action>
	
		<action name="download" class="com.zte.DownloadAction" method="execute">
			<result type="stream">
				<param name="inputName">downloadFile</param>
				<!--  
				指定下载的文件名
				<param name="contentDisposition">
					attachment;filename=${filename}
				</param>
				-->
			</result>
		</action>
		
	</package>
	
</struts>

猜你喜欢

转载自blog.csdn.net/qq_40183281/article/details/89885148
今日推荐