日期:2014-05-17 浏览次数:20811 次
public void downloadFile() {
try {
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
String webHost = request.getContextPath();
handbookUrl = new String(handbookUrl.getBytes("ISO-8859-1"), "UTF-8");
String filePath = handbookUrl;
filePath = request.getRealPath(filePath);
download(filePath, response);
} catch (Exception e) {
e.printStackTrace();
}
}
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
// 清空response
response.reset();
// 设置response的Header
response.setBufferSize(5 * 1024 * 1024);
filename = new String(filename.getBytes("GBK"), "ISO8859_1");
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
int readLength = 0;
byte[] readUnit = new byte[1024 * 1024];
while ((readLength = fis.read(readUnit)) != -1) {
toClient.write(readUnit, 0, readLength);
toClient.flush();
}
fis.close();
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
------解决方案--------------------
http://www.vaannila.com/struts-2/struts-2-example/struts-2-file-Upload-example-1.html
You can download the Struts 2 File Upolad example by clicking the Download link below.
Source :Download
War :Download
------解决方案--------------------
上传
/*
* 上传文件
*/
public String uploadFile(File upload, String uploadFileName,
String directory) {
String path = "upload";
String filePath = "";
try {
HttpServletRequest request = ServletActionContext.getRequest();
String fileName = uploadFileName;
// 获取物理路径
String sPath = request.getRealPath(path+File.separator + directory)+File.separator;
// 获取网络地址
filePath = path + "/" + directory
+ "/" + fileName;
String outputFileName = sPath + fileName;
File outputPathFile = new File(sPath);
if (!outputPathFile.exists()) {
outputPathFile.mkdirs();
}
// 保存文件
File outputFile = new File(outputFileName);
java.io.InputStream is = new FileInputStream(upload);
java.io.OutputStream os = new java.io.FileOutputStream(outputFile);
if (outputFile.exists())
outputFile.delete();