需要引用到的jar
commons-net-1.4.1.jarcommons-net-2.2.jar
/** * Description: 向FTP服务器上传文件 * * @param url * FTP服务器hostname * @param port * FTP服务器端口 * @param username * FTP登录账号 * @param password * FTP登录密码 * @param path * FTP服务器保存目录 * @param filename * 上传到FTP服务器上的文件名 * @param input * 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(String url, int port, String username, String password, String path, String filename, InputStream input) { /**将结束*/ // 初始表示上传失败 boolean success = false; FTPClient ftp = null; String proxySet = System.getProperty("proxySet"); //true表示有设置代理 // 创建FTPClient对象 if("true".equals(proxySet)) { ftp = new FTPHTTPClient(System.getProperty("http.proxyHost"), Integer.parseInt(System.getProperty("http.proxyPort"))); } else { ftp = new FTPClient(); } try { int reply; // 连接FTP服务器 // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器 ftp.connect(url, port); // 登录ftp ftp.login(username, password); // 看返回的值是不是230,如果是,表示登陆成功 reply = ftp.getReplyCode(); // 以2开头的返回值就会为真 if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } // 转到指定上传目录 ftp.changeWorkingDirectory(path); //如果有配置代理参数时,需要设置如下模式// if("true".equals(proxySet)) {// ftp.enterLocalPassiveMode();// } ftp.enterLocalPassiveMode(); ftp.setBufferSize(1024); ftp.setControlEncoding("GBK"); ftp.setFileType(FTPClient.BINARY_FILE_TYPE); // 将上传文件存储到指定目录 ftp.storeFile(filename, input); // 关闭输入流 input.close(); // 退出ftp ftp.logout(); // 表示上传成功 success = true; } catch (Exception e) {// e.printStackTrace(); System.err.println(e); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; }