读书人

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

发布时间: 2013-07-01 12:33:04 作者: rapoo

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()……

读书人网 >Java Web开发

热点推荐