分享我的端点下载
package com.zzvcom.common;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 断点续传
*/
public abstract class FileRender
{
public static void RenderDownloadFile(HttpServletResponse response,
HttpServletRequest request, File file, String fileName)
{
try
{
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Accept-Ranges", "bytes");
response.setHeader("Content-Disposition", "attachment; filename="
+ java.net.URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Content-Length", file.length() + "");
OutputStream os = response.getOutputStream();
String range = request.getHeader("Range");
// System.out.println("range:"+range);
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[1024];
if (range != null)
{
range = range.substring("bytes=".length(), range.length() - 1);
long start = Long.parseLong(range);
fis.skip(start);
long l = file.length();
String contentRange = new StringBuffer("bytes ").append(start)
.append("-").append(l - 1).append("/").append(l)
.toString();
response.setHeader("Content-Range", contentRange);
response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
}
BufferedInputStream buff = new BufferedInputStream(fis);
int len = 0;
while ((len = buff.read(bytes)) > 0)
{
os.write(bytes, 0, len);
}
// os.close();
buff.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
我不喜欢写注释大家仔细看吧呵呵