从 FTP 服务器获取图片然后在 Android 中转换为位图
get picture from FTP server then convert to Bitmap in Android
根据这个 thread 的回答,我们可以从 FTP 服务器上传和下载:
//UPLOAD
try
{
FTPClient con = new FTPClient();
con.connect("192.168.2.57");
if (con.login("Administrator", "KUjWbk"))
{
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String data = "/sdcard/vivekm4a.m4a";
FileInputStream in = new FileInputStream(new File(data));
boolean result = con.storeFile("/vivekm4a.m4a", in);
in.close();
if (result) Log.v("upload result", "succeeded");
con.logout();
con.disconnect();
}
}
catch (Exception e)
{
e.printStackTrace();
}
//DOWNLOAD
try
{
FTPClient con = new FTPClient();
con.connect("192.168.2.57");
if (con.login("Administrator", "KUjWbk"))
{
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String data = "/sdcard/vivekm4a.m4a";
OutputStream out = new FileOutputStream(new File(data));
boolean result = con.retrieveFile("vivekm4a.m4a", out);
out.close();
if (result) Log.v("download result", "succeeded");
con.logout();
con.disconnect();
}
}
catch (Exception e)
{
Log.v("download result","failed");
e.printStackTrace();
}
在下载部分,是否可以只检索文件(假设文件始终为 jpg)并将其转换为位图,而无需在我的应用程序文件夹中创建文件?
您可以使用picaso库获取从FTP服务器下载的图像并获取其位图。
Picasso 库有特殊方法“target”,它会直接为您提供下载的位图供您编写代码。
希望它能帮助你。
例如
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// You can use the bitmap object here
}
@Override
public void onBitmapFailed() {
}
}
Picasso.with(this).load("url").into(target);
根据这个 thread 的回答,我们可以从 FTP 服务器上传和下载:
//UPLOAD
try
{
FTPClient con = new FTPClient();
con.connect("192.168.2.57");
if (con.login("Administrator", "KUjWbk"))
{
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String data = "/sdcard/vivekm4a.m4a";
FileInputStream in = new FileInputStream(new File(data));
boolean result = con.storeFile("/vivekm4a.m4a", in);
in.close();
if (result) Log.v("upload result", "succeeded");
con.logout();
con.disconnect();
}
}
catch (Exception e)
{
e.printStackTrace();
}
//DOWNLOAD
try
{
FTPClient con = new FTPClient();
con.connect("192.168.2.57");
if (con.login("Administrator", "KUjWbk"))
{
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String data = "/sdcard/vivekm4a.m4a";
OutputStream out = new FileOutputStream(new File(data));
boolean result = con.retrieveFile("vivekm4a.m4a", out);
out.close();
if (result) Log.v("download result", "succeeded");
con.logout();
con.disconnect();
}
}
catch (Exception e)
{
Log.v("download result","failed");
e.printStackTrace();
}
在下载部分,是否可以只检索文件(假设文件始终为 jpg)并将其转换为位图,而无需在我的应用程序文件夹中创建文件?
您可以使用picaso库获取从FTP服务器下载的图像并获取其位图。
Picasso 库有特殊方法“target”,它会直接为您提供下载的位图供您编写代码。
希望它能帮助你。
例如
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// You can use the bitmap object here
}
@Override
public void onBitmapFailed() {
}
}
Picasso.with(this).load("url").into(target);