如何在Android上使用FTP上传图片?
答案 0 :(得分:6)
使用SimpleFTP,只需将simpleftp.jar添加到类路径中,然后在任何类中使用它导入包:Download here
import org.jibble.simpleftp.*;
确保在上传图像等时使用二进制模式,否则它们可能会损坏。
try
{
SimpleFTP ftp = new SimpleFTP();
// Connect to an FTP server on port 21.
ftp.connect("ftp.somewhere.net", 21, "username", "password");
// Set binary mode.
ftp.bin();
// Change to a new working directory on the FTP server.
ftp.cwd("web");
// Upload some files.
ftp.stor(new File("webcam.jpg"));
ftp.stor(new File("comicbot-latest.png"));
// You can also upload from an InputStream, e.g.
ftp.stor(new FileInputStream(new File("test.png")), "test.png");
ftp.stor(someSocket.getInputStream(), "blah.dat");
// Quit from the FTP server.
ftp.disconnect();
}
catch (IOException e)
{
e.printStackTrace();
}
这是所有功能,因此它不允许您下载文件!
答案 1 :(得分:3)
public void sendFileViaFTP() {
FTPClient ftpClient = null;
try {
ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName("ftp.myserver.com"));
if (ftpClient.login("myftpusername", "myftppass")) {
ftpClient.enterLocalPassiveMode(); // important!
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
String Location = Environment.getExternalStorageDirectory()
.toString();
String data = Location + File.separator + "FileToSend.txt";
FileInputStream in = new FileInputStream(new File(data));
boolean result = ftpClient.storeFile("FileToSend.txt", in);
in.close();
if (result)
Log.v("upload result", "succeeded");
ftpClient.logout();
ftpClient.disconnect();
}
} catch (Exception e) {
Log.v("count", "error");
e.printStackTrace();
}
}
这肯定会奏效。我已经多次这样做了。