将文件存入webContent目录下

由于工作需要要使文件可直接下载,所以准备将文件存入webContent目录下,以方便访问。

弄了很长的一段时间,终于好了,就记录下来了,以免以后遇到同样的问题。

需要注意的是用这种方法时,如果将项目从服务器上卸下来,webContent里面保存的信息也就丢失了,如果需要长期保存的话可能不太合适。

SERVERPATH 是客户端访问服务端的地址

要获取文件,那么只需输入

SERVERPATH+fileName+ fName就可以了,其中fileName是文件所在的文件夹名,fName是文件名 

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class FileAction extends ActionSupport {
	private static String SERVERPATH = "http://xx.xx.xx.xx:8080/xxxx/";
	private static String FILETYPE = "apk";// 文件类型
	private Integer versionFirst;// 版本号参数
	private Integer versionSecond;// 版本号参数
	private Integer versionThird;// 版本号参数
	private File file;//文件

	public String add() {
		String versionNo = versionFirst + "."+ versionSecond + "."+versionThird;
		// 新建的文件夹名
		ActionContext actionContext = ActionContext.getContext();
                //获取request
		HttpServletRequest request = (HttpServletRequest) actionContext
				.get(ServletActionContext.HTTP_REQUEST);
                //获取项目在服务器上的真实目录
		String fileName = request.getSession().getServletContext()
				.getRealPath("")
				+ "\\" + versionNo;
		// 创建一个以版本号命名的文件夹
		File newFile = new File(fileName);
		newFile.mkdirs();
		// 提交完整升级文件到服务器上,并同时重命名
		if (file != null) {
			InputStream is;
			OutputStream os;
			try {
				String fName = fileName + "\\" + versionNo + "." + FILETYPE;
				is = new java.io.FileInputStream(file);
				os = new java.io.FileOutputStream(fName);
				byte buffer[] = new byte[8192];
				int count = 0;
				while ((count = is.read(buffer)) > 0) {
					os.write(buffer, 0, count);
				}
				os.close();
				is.close();
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else {
			return "ERROR";
		}
		return "SUCCESS";
	}


	public Integer getVersionFirst() {
		return versionFirst;
	}


	public void setVersionFirst(Integer versionFirst) {
		this.versionFirst = versionFirst;
	}


	public Integer getVersionSecond() {
		return versionSecond;
	}


	public void setVersionSecond(Integer versionSecond) {
		this.versionSecond = versionSecond;
	}


	public Integer getVersionThird() {
		return versionThird;
	}


	public void setVersionThird(Integer versionThird) {
		this.versionThird = versionThird;
	}


	public File getFile() {
		return file;
	}


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

你可能感兴趣的:(存储,文件,webcontent)