【发布时间】:2015-12-11 15:57:47
【问题描述】:
我正在尝试使用 UIL 从 FTP 服务器上传图像。为此,我创建了一个FTPImageDownloader。我使用 apache-commons-ftpclient。代码如下:
public class FTPImageDownloader implements ImageDownloader {
public static String FTP_SERVER_HOST = "xx.xx.xxx.xxx";
public static int FTP_SERVER_PORT =xx;
public static String FTP_LOGIN = "xxxxxxx";
public static String FTP_PASSWORD = "xxxxxxx";
@Override
public InputStream getStream(String imageUri, Object extra) throws IOException {
return getFTPStream(imageUri);
}
public InputStream getFTPStream(String url) throws IOException {
FTPClient con = null;
final String imageUrl = url;
try
{
con = new FTPClient();
con.connect(FTP_SERVER_HOST);
if (con.login(FTP_LOGIN, FTP_PASSWORD))
{
con.enterLocalPassiveMode();
con.setFileType(FTP.BINARY_FILE_TYPE);
return con.retrieveFileStream(imageUrl);
}
}
catch (Exception e)
{
Log.v("download result","failed");
e.printStackTrace();
} finally {
con.logout();
con.disconnect();
}
return null;
}}
这可行,但速度很慢。当我们同时下载多个图像时,这一点尤其明显。
我认为 ImageLoader 工作缓慢的原因是每张图片都打开了一个新的连接。如果是这种情况,那么请告诉我如何像单例一样建立连接。谢谢。
【问题讨论】:
标签: android ftp universal-image-loader