JDK1.7以上javaFTP上传删除文件的实现方法

时间:2021-05-20

实例如下:

packagecom.itv.launcher.util; importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.net.InetSocketAddress;importjava.util.Properties;importjava.util.StringTokenizer; importsun.net.TelnetOutputStream;importsun.net.ftp.FtpClient;importsun.net.ftp.FtpProtocolException; /** * FTP上传工具类 * * @author yanzhou * @version v1.0 */publicclassFTPUtil { privatestaticFtpClient ftpClient = null; privatestaticfinal String url; privatestaticfinal int port; privatestaticfinal String user; privatestaticfinal String password; privatestaticfinal String remoteFilePath; static{ Properties FTPPro = ReadFTPProperties.getMsgFromPro(); url = FTPPro.getProperty("FTP_URL"); port = Integer.parseInt(FTPPro.getProperty("FTP_PORT")); user = FTPPro.getProperty("FTP_USER"); password = FTPPro.getProperty("FTP_PASSWORD"); remoteFilePath = FTPPro.getProperty("FTP_REMOTE_FILEPATH"); } /** * 链接FTP * @throws FtpProtocolException */ privatestaticvoid connectFTP() throwsFtpProtocolException { try{ ftpClient = FtpClient.create(); ftpClient.connect(newInetSocketAddress(url, port)); ftpClient.login(user, password.toCharArray()); ftpClient.setBinaryType(); if(!"".equals(remoteFilePath) && remoteFilePath != null) { ftpClient.changeDirectory(remoteFilePath); } }catch(IOException e) { e.printStackTrace(); } } /** * 关闭FTP链接 */ publicstaticvoid closeFTP() { try{ if(ftpClient != null) { ftpClient.close(); } }catch(IOException e) { e.printStackTrace(); } } /** * 上传文件到FTP * @param file file文件,struts2从页面得到的File类型 * @param filePath 要保存在FTP上的路径(文件夹) * @param fileName 文件名(test001.jpg) * @return 文件是否上传成功 * @throws Exception */ publicstaticboolean upload(File file, String filePath, String fileName) { TelnetOutputStream to = null; FileInputStream fi = null; filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath; try{ if(file != null) { connectFTP(); if(!isDirExist(filePath.replace("\\","/"))) { createDir(filePath.replace("\\","/")); ftpClient.changeDirectory(filePath.replace("\\","/")); } fi = newFileInputStream(file); to = (TelnetOutputStream) ftpClient.putFileStream(fileName, true); byte[] bytes = newbyte[1024]; inti = fi.read(bytes); while(i != -1) { to.write(bytes); i = fi.read(bytes); } } returntrue; }catch(FileNotFoundException e1) { returnfalse; }catch(IOException e2) { returnfalse; }catch(Exception e) { returnfalse; }finally{ if(fi != null) { try{ fi.close(); }catch(IOException e) { e.printStackTrace(); } } if(to != null) { try{ to.flush(); to.close(); }catch(IOException e) { e.printStackTrace(); } } closeFTP(); } } /** * 删除FTP制定目录下的文件 * @param filePath 文件在FTP存储的路径 * @param fileName 要删除的文件名称 * @return 是否删除成功 */ publicstaticboolean deleteFileFtp(String filePath, String fileName){ try{ connectFTP(); filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath + Constants.FILE_SEPARATOR; if(!isDirExist(filePath.replace("\\","/"))) { returnfalse; } ftpClient.changeDirectory(filePath.replace("\\","/")); ftpClient.deleteFile(fileName); returntrue; }catch(Exception e) { e.printStackTrace(); returnfalse; }finally{ closeFTP(); } } /** * 检查文件夹是否存在 * * @param dir * @param ftpClient * @return */ privatestaticBoolean isDirExist(String dir) { try{ ftpClient.changeDirectory(dir); }catch(Exception e) { returnfalse; } returntrue; } /** * 创建文件夹 * * @param dir * @param ftpClient * @throws Exception */ privatestaticvoid createDir(String dir) throwsException { ftpClient.setAsciiType(); StringTokenizer s = newStringTokenizer(dir,"/");// sign s.countTokens(); String pathName = ""; while(s.hasMoreElements()) { pathName = pathName + "/"+ (String) s.nextElement(); try{ ftpClient.makeDirectory(pathName); }catch(Exception e) { e = null; } } ftpClient.setBinaryType(); } }

2. 常量类,系统的路径分隔符

packagecom.itv.launcher.util; publicinterfaceConstants { //路径分隔符 publicstaticString FILE_SEPARATOR = System.getProperty("file.separator");}

3. FTP链接的配置properties文件,包括用户名密码一些信息

#FTP的IP地址FTP_URL=127.0.0.1#FTP端口号FTP_PORT=1234#用户名FTP_USER=yanzhou#密码FTP_PASSWORD=abcdefg12345#FTP账号目录FTP_REMOTE_FILEPATH=

以上这篇JDK1.7以上javaFTP上传删除文件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章