java使用http下载文件
2016-09-14 18:13
260 查看
package com.wenku.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.common.util.ConstData;
import com.common.util.MyConfig;
import com.common.util.Util;
import com.wenku.entity.MyWenKu;
import com.wenku.service.WenKuService;
public class DownAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException{
String guid=request.getParameter("guid");
ServletOutputStream out = null;
InputStream inStream = null;
WenKuService service = WenKuService.getInstance();
try {
MyWenKu wenku = service.getWenKu(guid);
String dir = Util.getFilePath(MyConfig.getFiledataDir());
String fileName = wenku.getFtitle()+"."+wenku.getFext();
String filePath = dir+wenku.getFsourcefile();
File file = new File(filePath);
inStream = new FileInputStream(filePath);
response.reset();// 清空response
response.setContentType("application/x-msdownload");
// 设置response的Header ISO_8859_1
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes("gb2312"), "ISO_8859_1"));
response.addHeader("Content-Length", "" + file.length());
byte[] b = new byte[1024*4];
int len = 0;
long length = 0;
out = response.getOutputStream();
// 循环取出流中的数据
while ((len = inStream.read(b)) > 0) {
out.write(b, 0, len);
}
out.flush();//这句会弹出下载对话框(你也可以选择打开)
out.close();
inStream.close();
long end = System.currentTimeMillis();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.common.util.ConstData;
import com.common.util.MyConfig;
import com.common.util.Util;
import com.wenku.entity.MyWenKu;
import com.wenku.service.WenKuService;
public class DownAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException{
String guid=request.getParameter("guid");
ServletOutputStream out = null;
InputStream inStream = null;
WenKuService service = WenKuService.getInstance();
try {
MyWenKu wenku = service.getWenKu(guid);
String dir = Util.getFilePath(MyConfig.getFiledataDir());
String fileName = wenku.getFtitle()+"."+wenku.getFext();
String filePath = dir+wenku.getFsourcefile();
File file = new File(filePath);
inStream = new FileInputStream(filePath);
response.reset();// 清空response
response.setContentType("application/x-msdownload");
// 设置response的Header ISO_8859_1
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes("gb2312"), "ISO_8859_1"));
response.addHeader("Content-Length", "" + file.length());
byte[] b = new byte[1024*4];
int len = 0;
long length = 0;
out = response.getOutputStream();
// 循环取出流中的数据
while ((len = inStream.read(b)) > 0) {
out.write(b, 0, len);
}
out.flush();//这句会弹出下载对话框(你也可以选择打开)
out.close();
inStream.close();
long end = System.currentTimeMillis();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
相关文章推荐
- 使用Java程序来实现HTTP文件的队列下载
- 使用java实现http多线程断点下载文件(一)
- 使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法
- 使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法
- 使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法
- java使用http实现文件下载学习示例
- java使用HttpGet下载文件
- 使用Java程序来实现HTTP文件的队列下载
- 使用java实现http多线程断点下载文件(二)
- 使用 CInternetSession 封装多线程 http 文件下载
- Java实现HTTP文件下载
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- 用Java实现HTTP文件队列下载
- 用Java实现HTTP文件队列下载
- 用Java实现HTTP文件队列下载
- jaVA使用FTP上传下载文件的问题
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- [转]使用MFC提供的Http类下载和上传文件
- jsp里使用java excel api实现文件下载
- 使用 CInternetSession 封装多线程 http 文件下载