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; } }
相关推荐
Java FTP 上传文件 Java FTP 上传文件是指通过 Java 语言编写代码将文件上传到 FTP 服务器,解决多文件上传问题。FTP(File Transfer Protocol,文件传输协议)是一种常用的网络协议,用于在网络上传输文件。Java ...
- **上传文件**:调用`FTPClient.storeFile()`或`FTPClient.uploadFile()`方法上传文件。 - **断开连接**:最后,记得调用`FTPClient.logout()`和`FTPClient.disconnect()`断开连接并释放资源。 在开发过程中,还...
javaftp上传文件.txt javaftp上传文件.txt javaftp上传文件.txt
5. **文件上传**:使用`storeFile()`方法上传文件。你需要提供远程文件路径和一个InputStream,这个InputStream通常来自本地文件。 ```java File localFile = new File("C:\\local\\file.txt"); InputStream in = ...
- `uploadFile(String remoteFilePath, File localFile)`: 上传文件到FTP服务器。 - `downloadFile(String remoteFilePath, File localFile)`: 从FTP服务器下载文件到本地。 - `disconnect()`: 断开与FTP服务器的...
在Java编程环境中,FTP(File Transfer Protocol)上传文件并实现进度条显示是一个常见的需求,尤其在用户界面设计中。下面将详细讲解如何使用Java的Swing库创建一个带有进度条的FTP文件上传功能。 首先,我们需要...
这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...
上传文件是指将本地文件上传到 FTP 服务器上。使用 FTPClient 可以轻松实现文件上传。下面是一个上传文件的示例代码: ```java public static boolean uploadFile(String url,int port,String username, String ...
### Java上传文件到FTP知识点详解 #### 一、概述 在现代软件开发中,文件传输是一项常见的需求。其中,FTP(文件传输协议)是最常用的一种文件传输方式之一。本篇文章将详细阐述如何利用Java编程语言实现本地文件...
Java FTP(File Transfer...总的来说,Java FTP上传IIS的实现涉及到Java网络编程、FTP协议、可能的第三方库使用,以及良好的异常管理和资源管理实践。通过合理的工具类设计,可以创建出高效且易于维护的FTP客户端代码。
java使用FTP上传文件,非常实用 包括创建ftp链接,上传
上传小于 1M 文件速度要比用 FTP 协议上传文件略快。但对于批量及大文件的传输可能无能为力。后来决定采用 FTP 协议上传文件大于 1M 的文件速度比 HTTP 快。文件越大,上传的速度就比 HTTP 上传的速度快数倍。 二、...
java实现ftp断点续传,上传文件到FTP服务器,支持断点续传,同时支持LINUX主机,代码里面包括了比较多的java网络操作类,比如连接FTP的常规类、递归创建远程服务器目录 上传文件到服务器,新上传和断点续传操作,远程...
本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 首先,Java通过`java.net`和`javax.net`包提供了FTP客户端的功能。主要依赖于`java.net....
`FtpUtil.java`很可能是一个封装了FTP操作的类,包括连接FTP服务器、登录、设置工作目录、上传文件、下载文件、断开连接等方法。这些方法通过调用Java的`java.net.Socket`类和`commons-net-1.4.1.jar`库中的FTP相关...
这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以提供用户友好的交互体验。 在Java中,我们可以使用`java.net`或`org.apache.commons.net`库来实现FTP文件上传。...
java ftp上传进行文件的读取和上传 上传单个文件的文件流 创建远程服务器目录 删除指定文件 上传单个文件 获取指定ftp目录下文件名
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步或者日志传输等场景中。本文将深入探讨如何使用Java编程语言来构建一个FTP文件上传系统,同时结合Log4j日志框架和命令行信息的处理。 首先...
### Java FTP 指定下载文件和上传文件到指定的服务器目录 #### 一、概述 在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定...