apache ftpClientファイルアップロード
最近ftpアップロードをして問題にぶつかって、最終的に解決して、今みんなに分かち合います.
ここには4つあります.
1、文字列を入力ストリームに変換する
String s = "this is my test string ";
//
ByteArrayInputStream fis = new ByteArrayInputStream(s.getBytes());
2、コードの設定
ftp.setControlEncoding("GBK");
3、受動モードに設定
ftp.enterLocalPassiveMode();
4、ファイル名のコードをアップロードしてダウンロードして、ファイル名が中国語の時、アップロードしてダウンロードしてコードを必要とするかもしれません
//
boolean fb = ftp.storeFile(new String("test .csv".getBytes("GBK"),"iso8859-1"), fis);
最終テストコードは次のとおりです.
package ftpTest;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
public class ApacheFtpTest {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String s = "this is my test string ";
//
ByteArrayInputStream fis = new ByteArrayInputStream(s.getBytes());
FTPClient ftp = new FTPClient();
//host,
ftp.connect("127.0.0.1", 21);
// , iisc , iisc ,
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// , GBK,
ftp.setControlEncoding("GBK");
// ,
ftp.setControlKeepAliveReplyTimeout(15000);
ftp.setConnectTimeout(15000);
ftp.setControlKeepAliveTimeout(15000);
// , , 。
ftp.enterLocalPassiveMode();
//
ftp.login(" ", " ");
System.out.println("login success");
//
ftp.changeWorkingDirectory("/");
//
ftp.storeFile("test.txt", fis);
//
//boolean fb = ftp.storeFile(new String("test .csv".getBytes("GBK"),"iso8859-1"), fis);
ftp.logout();
}
}