1. 创建用户
2. 创建ftp服务
3. 管理ftp站点
4. 权限编辑
5. 绑定iP和端口
6. 访问
7. Java代码上传文件
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import org.json.JSONArray; import org.json.JSONObject; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import commonj.sdo.DataObject; public class FtpFileUpUtil { public static String CODE="GBK"; /** * 上传文件 * * @param hostname ftp服务器地址 * @param port ftp服务器端口号 * @param username ftp登录账号 * @param password ftp登录密码 * @param pathname ftp服务保存地址 * @param fileName 上传到ftp的文件名 * @param inputStream 输入文件流 * @return */ public static boolean uploadFile(String hostname, int port,String username, String password,String fileName,InputStream inputStream) { boolean flag = false; FTPClient ftpClient = new FTPClient(); // ftpClient.setControlEncoding(CODE); try { ftpClient.connect(hostname, port); // 连接ftp服务器 ftpClient.login(username, password); // 登录ftp服务器 int replyCode = ftpClient.getReplyCode(); // 是否成功登录服务器 if (!FTPReply.isPositiveCompletion(replyCode)) { return flag; } ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE); // ftpClient.makeDirectory(new String(pathname.getBytes(CODE),"iso-8859-1")); // ftpClient.changeWorkingDirectory(new String(pathname.getBytes(CODE),"iso-8859-1"));
//ftpClient.enterLocalPassiveMode();//client告诉ftp server开通一个端口来传输数据,防止有的ftp服务器乱搞,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞
ftpClient.storeFile(new String(fileName.getBytes(CODE),"iso-8859-1"), inputStream); inputStream.close(); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally { if (ftpClient.isConnected()) { try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return true; } /** * * 上传文件(可对文件进行重命名) * * @param hostname FTP服务器地址 * * @param port FTP服务器端口号 * * @param username FTP登录帐号 * * @param password FTP登录密码 * * @param pathname FTP服务器保存目录 * * @param originfilename 待上传文件的名称(绝对地址) * * @return */ public static boolean uploadFileFromProduction(String hostname, int port,String username, String password,String filename,String originfilename) { boolean flag = false; try { InputStream inputStream = new FileInputStream(new File(originfilename)); flag = uploadFile(hostname, port, username, password,filename, inputStream); } catch (Exception e) { e.printStackTrace(); } return flag; } }