我想将我的Android应用中的图片FTP到我的服务器。问题是,我现在正试图这样做:
String data = client.storeFile("picture.png", myBitmap);
但您无法通过storeFile发送位图,只能发送文件。所以我的问题是:如何将此位图放入要发送的文件中?我是否必须先将照片保存在手机上? (我不愿意)。有任何想法吗?感谢。
FTPClient client = new FTPClient();
Bitmap myBitmap = my bitmap;
try {
client.connect("myhost");
boolean login = client.login("un", "pw");
client.enterLocalPassiveMode();
client.setFileType(FTP.BINARY_FILE_TYPE);
String data = client.storeFile("picture.png", myBitmap);
//here is where I need a file, not bitmap
logout = client.logout();
client.disconnect();
答案 0 :(得分:1)
尝试检查this thread。您可以将 context.getCacheDir()更改为要在设备中存储位图文件的路径。这是你在找什么?有一个文件是从位图创建的。要检索File实体,只需使用
File myFile = new File(filename);
答案 1 :(得分:0)
我发现.storeFile接受了一个InputStream,而不是一个文件。所以发送我的位图我必须做的是:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
myBitmap.compress(CompressFormat.PNG,
0 /* ignored for PNG */, bos);
byte[] bitmapdata = bos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(
bitmapdata);
FileInputStream in = new FileInputStream(new File(data));
boolean result2 = client.storeFile("serverpath", bs);