首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java 用FTPClient 下载文件时不显示总大小?解决方案

2013-07-01 
java 用FTPClient下载文件时不显示总大小?FTPClient ftp new FTPClient()ftp.setControlEncoding(utf-

java 用FTPClient 下载文件时不显示总大小?


FTPClient ftp = new FTPClient();

ftp.setControlEncoding("utf-8");
OutputStream outputStream = null;
try {
    int reply;
    // 连接FTP服务器
    // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
    ftp.connect("192.168.1.111");
    // 登录ftp
    ftp.login("zhanghao", "mima");
    
    reply = ftp.getReplyCode();
    if (!FTPReply.isPositiveCompletion(reply)) {
     ftp.disconnect();
    }    
    
    response.setHeader("Content-Disposition","attachment; filename=""+new String(filename.getBytes("gbk"),"iso8859-1")+""");
 
                    // 将文件保存到输出流outputStream中
                    InputStream in = ftp.retrieveFileStream(ftppath);
                    
                    FTPListParseEngine engine = ftp.initiateListParsing(ftppath);  
                
                    outputStream = response.getOutputStream();
 
                    int len = 0;
                    long size = 0;
                    byte[] bt = new byte[1024];
                    while ((len = in.read(bt)) > 0) {
 
                        outputStream.write(bt, 0, len); 
                        size = size + len;
                    }
       
                outputStream.flush();
                outputStream.close(); 
        ftp.logout();
        response.setStatus(HttpServletResponse.SC_OK ); 
        response.flushBuffer();
   } catch (IOException e) {

   } finally {
    if (ftp.isConnected()) {


     try {
      ftp.disconnect();
     } catch (IOException ioe) {
     }
    }
   }



文件是可以下载,就是下载时显示大小未知?请问一下这个问题怎么解决?
谢谢 接到的只是流 怎么知道大小,需要另外传参吧
[解决办法]
java 用FTPClient  下载文件时不显示总大小?解决方案流的首字可以传长度啊 不一定非要直接传文件啊
[解决办法]
JAVA available()这个是获取输入流大小的方法,楼主看一下
[解决办法]
你试试这个HttpURLConnection.getContentLength()……

热点排行