日期:2014-05-18  浏览次数:20628 次

为什么是把一整个读完以后才输出到客户端,而不是读一次输出一次
String   mimetype=dds.getString( "mimetype ");//这是设置它的类型

response.getHttpServletResponse().reset();  
response.setContentType(mimetype);      
response.setHeader( "Content-Disposition ",   "attachment;       filename= "+   new   String(name.getBytes(),   "iso8859-1 "));//处理默认文件名的中文问题      
ServletOutputStream   os   =   response.getHttpServletResponse().getOutputStream();
//File   f   =   new   File   (url);
FileInputStream   in   =   new   FileInputStream(url);
long   old   =   System.currentTimeMillis();
byte[]   data   =   new   byte[10*1024*1024];
int   temp   =   -1;
int   c   =   0;
while   ((temp   =   in.read(data))   !=   -1)  
{
os.write(data,   0,   temp);
os.flush();

}


------解决方案--------------------
浏览器向服务器发送请求,服务器在处理完请求后会向浏览器输出结果,这个过程是由一次请求完成的所以会一起输出到浏览器,除非你有多个请求.
------解决方案--------------------
因为视屏文件一般都在150mb左右!一次性读完的话,消耗的时间会比较久,可不可以先让它读到一半,输出到客户端,然后把剩下的再继续读!
------解决方案--------------------
那就得采用流媒体的方式