设置contentType,写数据流

解决方案 »

  1.   

    response.ContentType = "application/octet-stream";
    response.AddHeader("Content-Disposition", "attachment; filename="
        + java.net.UrlEncoder.encode(filename, "UTF-8"));
      

  2.   

    一段简单代码,例子在example注释中,也可以根据需要做其它扩展<%
        // example:
        // <a href="download.jsp?path=img/&name=test.gif">download image</a>
        
        String root = getServletContext().getRealPath("/");
        String path = request.getParameter("path");
        String name = request.getParameter("name");
        
        response.setContentType("unknown");
        response.addHeader("Content-Disposition", "filename=\"" + name + "\"");
        
        try
        {
            java.io.OutputStream    os  = response.getOutputStream();
            java.io.FileInputStream fis = new java.io.FileInputStream(root + path + name);
            
            byte[] b = new byte[1024];
            int    i = 0;
            
            while ( (i = fis.read(b)) > 0 ) 
            {
                os.write(b, 0, i);
            }
            
            fis.close();
            os.flush();
            os.close();
        }
        catch ( Exception e )
        {
        }
    %>
      

  3.   

    cm4ever(小P) 所写已经差不多了。你只需要把对应的真实文件名传到这个jsp中去就可以了。