How can I upload images using FTP on Android?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Use SimpleFTP, simply add simpleftp.jar to your classpath and import the package in whichever classes will use it: Download here
import org.jibble.simpleftp.*;
Make sure you use binary mode when uploading images and suchlike, or they may become corrupted.
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();
}
This was all the functionality, so it does not let you download files!
回答2:
Download the FTP Jar Library from Here
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();
}
}
This will work for sure. I've done this many times.