public void upload(InputStream inputStream,String path) {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(host, Integer.parseInt(port));
ftpClient.login(username, password);
ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
String directory = path.substring(0,path.lastIndexOf("/"));
String filename = path.substring(path.lastIndexOf("/")+1,path.length());
if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
if (!ftpClient.changeWorkingDirectory(directory)) {
String[] paths = directory.split("/");
String p = "/";
ftpClient.changeWorkingDirectory(p);
for (String s : paths) {
p += s + "/";
if (!ftpClient.changeWorkingDirectory(p)) {
ftpClient.makeDirectory(s);
ftpClient.changeWorkingDirectory(p);
}
}
}
ftpClient.storeFile(filename, inputStream);
ftpClient.logout();
}
} catch (IOException e) {
logger.error("上传文件出错!",e);
} finally {
IOUtils.closeQuietly(inputStream);
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
logger.error("上传文件出错!",e);
}
}
}
}
//当我上传小图标不能成功上传覆盖之前的图片,大图片可以!