package com.detao.dtma.filter; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; import org.apache.log4j.Logger; import com.detao.dtma.utils.Configuration; public class FtpFile { private static Logger logger = Logger.getLogger(FtpFile.class); String ftpinfor = Configuration.getProperty("ftp.file.information"); String[] ftpin=ftpinfor.split("/"); String filetype="picture,files,video,others"; String[] dire=filetype.split(","); String picturetype = Configuration.getProperty("ftp.file.picturetype"); String filestype = Configuration.getProperty("ftp.file.filestype"); String videotype = Configuration.getProperty("ftp.file.videotype"); /** * 获取FTPClient对象 * @param ftpHost FTP主机服务器 * @param ftpPassword FTP 登录密码 * @param ftpUserName FTP登录用户名 * @param ftpPort FTP端口 默认为21 * @return */ public static FTPClient getFTPClient(String ftpHost, String ftpPassword, String ftpUserName, int ftpPort) { FTPClient ftpClient = null; try { ftpClient = new FTPClient(); ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器 ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器 if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { logger.info("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { logger.info("FTP连接成功。"); } } catch (SocketException e) { e.printStackTrace(); logger.info("FTP的IP地址可能错误,请正确配置。"); } catch (IOException e) { e.printStackTrace(); logger.info("FTP的端口错误,请正确配置。"); } return ftpClient; } /** * 本地上传文件到FTP服务器 * * @param ftpPath * 远程文件路径FTP * @return * @throws IOException */ public String upload(String filePath,String filename) { FTPClient ftpClient = null; String dirurl=""; try { ftpClient = getFTPClient(ftpin[0], ftpin[1],ftpin[2], Integer.parseInt(ftpin[3])); // 设置PassiveMode传输 ftpClient.enterLocalPassiveMode(); // 设置以二进制流的方式传输 ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.makeDirectory(ftpin[4]); //新建OA文件夹 ftpClient.changeWorkingDirectory(ftpin[4]);//路径转移OA文件夹 String[] filtype=filename.split("\\."); System.out.println(filtype.length); dirurl+="/"+ftpin[4]; if(filtype.length>1){ int ff= filtype.length; if(picturetype.contains(filtype[(ff-1)])){ ftpClient.makeDirectory(dire[0]); ftpClient.changeWorkingDirectory(dire[0]); dirurl+="/"+dire[0]; }else if(filestype.contains(filtype[(ff-1)])){ ftpClient.makeDirectory(dire[1]); ftpClient.changeWorkingDirectory(dire[1]); dirurl+="/"+dire[1]; }else if(videotype.contains(filtype[(ff-1)])){ ftpClient.makeDirectory(dire[2]); ftpClient.changeWorkingDirectory(dire[2]); dirurl+="/"+dire[2]; }else{ ftpClient.makeDirectory(dire[3]); ftpClient.changeWorkingDirectory(dire[3]); dirurl+="/"+dire[3]; } dirurl+="/"+filename; File f = new File(filePath); InputStream in = new FileInputStream(f); ftpClient.storeFile(filename, in); in.close(); f.delete(); }else{ dirurl="create error"; } } catch (Exception e) { e.printStackTrace(); dirurl="create error"; }finally{ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } return dirurl; } }
相关推荐
javaftp上传文件.txt javaftp上传文件.txt javaftp上传文件.txt
java FTP上传文件(进度条显示进度)
利用JAVA编写代码上传文件到FTP,解决多文件上传问题!
java实现的ftp文件上传
java使用FTP上传文件,非常实用 包括创建ftp链接,上传
java实现ftp断点续传,上传文件到FTP服务器,支持断点续传,同时支持LINUX主机,代码里面包括了比较多的java网络操作类,比如连接FTP的常规类、递归创建远程服务器目录 上传文件到服务器,新上传和断点续传操作,远程...
NULL 博文链接:https://cqh520llr.iteye.com/blog/2019571
java ftp上传进行文件的读取和上传 上传单个文件的文件流 创建远程服务器目录 删除指定文件 上传单个文件 获取指定ftp目录下文件名
java 连接 FTP 文件操作(上传,下载,删除,复制
java利用FTPClient实现上传下载文件
通过java程序来实现将本地文件上传到ftp服务器的功能
用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
NULL 博文链接:https://liugaojian13135.iteye.com/blog/837708
一款由java实现ftp自动上传整个磁盘所有文件,包括目录,下面的JTextArea读取Log4j及命令行的信息,采用第三方ftpClient.不过下载的部分还没有时间去做.
java ftp 文件上传,两个工具类,一个是直接写的,一个是进行了二次封装的。代码示例,项目工程jdk版本1.7的。
JAVA获取FTP文件列表,功能齐全。包括:链接到服务器,上传文件到FTP服务器,从FTP服务器上下载文件并返回下载文件长度,返回FTP目录下的文件列表,删除FTP上的文件及目录,关闭链接。
java 连接linux系统上的ftp服务器,通过java代码上传,下载文件 通过链接ftp,获取文件列表,上传。下载、删除文件功能实现
java大文件上传至ftp服务器带进度条显示的,进度条的显示和ftp的上传速度同步,解决了进度条显示和ftp不同步的问题
Java语言编写的FTP上传下载代码,自己从项目中抽出来的,jar包也在其中,需要的朋友们拿去吧。
使用Java写的完整的上传下载Ftp上的文件案例。 请大家参考。 作者:宋海康