如题,最好能够实时显示进度,不要使用插件。
能实现断点续传更好(要求是不是有点高)
InputStream fis = new BufferedInputStream(new FileInputStream(path));
response.reset();
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("UTF-8");
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename="+ new String(filename.getBytes("utf-8"), "ISO8859-1"));
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
toClient.write(buffer, 0, bytesRead);
}
toClient.write(buffer);
toClient.flush();
toClient.close();
fis.close();
这种方法试过了,仍然内存溢出
java.lang.OutOfMemoryError: Java heap space