首先 - 这是我在StackOverflow上提出的第一个问题。我来自德国,我的英语不太好:)。
我尝试将FTP客户端创建为Android应用程序。我正在使用Eclipse和Android SDK进行编码。
这是我的代码,但它不起作用。 我使用Apache Commons FTP库。 你能帮助我吗?我不想要一个功能代码,但我喜欢得到建议让代码工作。 谢谢!
所以这是我的代码:
import org.apache.commons.net.ftp.FTPClient;
public class speechatStart extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
Button b1 = (Button) findViewById(R.id.bt_load);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FTPClient client = new FTPClient();
TextView ausgabe = (TextView) findViewById(R.id.ausgabe);
try {
client.connect("ftp-web.ohost.de");
client.login("ftp1857836", "123456789");
String filename = "file1.txt";
FileInputStream fis = null;
fis = new FileInputStream(filename);
client.storeFile(filename, fis);
client.logout();
fis.close();
ausgabe.setText(fis);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
ausgabe.setText("SocketException");
} catch (IOException e) {
// TODO Auto-generated catch block
ausgabe.setText("IOException");
}
}
});
答案 0 :(得分:1)
Apache-Commons FTp库没有为我提供可靠的解决方案。所以我使用ftp4j给了我更好的解决方案和API也很简单。
Example:
FTPClient client = new FTPClient();
client.connect("ftp.host.com");
if(client.isConnected())
{
client.login("username","password");
if(client.isAuthenticated())
{
client.upload(new java.io.File("localFile.txt"));
}
}
希望这有帮助
答案 1 :(得分:0)
如果您想下载文件,请尝试下一个代码:
ftpClient.retrieveFile(filename, outputStream);
outputStream.flush();
outputStream.close();
ftpClient.logout();
ftpClient.disconnect();
将更改上传到
ftpClient.storeFile(filename, inputStream);
您似乎在关闭流之前正在注销。