目次
FTPClientでIMAGE_FILE_TYPEの定数が使えない
例えばこういう処理
if (ftpCl.changeWorkingDirectory(path)) {
ftpCl.setFileType(FTP.IMAGE_FILE_TYPE);
if (ftpCl.storeFile(makeFileName, uploadFileName)) {
ftpCl.site("chmod 757 " + makeFileName);
} else {
return false;
}
}
ここで、FTP.IMAGE_FILE_TYPEという定数が無いといわれる。
原因
FTPClientには2つのバージョンが存在する。
Apache Commons Net
・Apache Commons Net 3.6 API
・Commons Net 1.4.1 API
IMAGE_FILE_TYPEの定数が存在するのはCommons Net 1.4.1 APIのバージョンの方のみであり、
Apache Commons Net 3.6 APIのライブラリを使っていたため怒られた。
解決策
Apache Commons Net 3.6 APIの方を用いる場合、
BINARY_FILE_TYPEを用いる。
if (ftpCl.changeWorkingDirectory(path)) {
ftpCl.setFileType(FTP.BINARY_FILE_TYPE);
if (ftpCl.storeFile(makeFileName, uploadFileName)) {
ftpCl.site("chmod 757 " + makeFileName);
} else {
return false;
}
}