FTP 上传
import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; import java.util.StringTokenizer; import sun.net.ftp.FtpClient; public class Ftp { private String ip = ""; private String username = ""; private String password = ""; private int port = 21; private String localFileFullName = ""; // 需要上传的目录 FtpClient ftpClient = null; OutputStream os = null; FileInputStream is = null; public Ftp(String serverIP , int port , String username , String password) { this.ip = serverIP; this.username = username; this.password = password; this.port = port; } public Ftp(String serverIP, String username, String password) { this.ip = serverIP; this.username = username; this.password = password; } /** * 创建文件夹 * * @param dir * @param ftpClient * @throws Exception */ private void createDir(String dir, FtpClient ftpClient) throws Exception { ftpClient.ascii(); StringTokenizer s = new StringTokenizer(dir, "/"); // sign s.countTokens(); String pathName = ""; while (s.hasMoreElements()) { pathName = pathName + "/" + (String) s.nextElement(); try { ftpClient.sendServer("MKD " + pathName + "\r\n"); } catch (Exception e) { e = null; } ftpClient.readServerResponse(); } ftpClient.binary(); } /** * 检查文件夹是否存在 * * @param dir * @param ftpClient * @return */ private Boolean isDirExist(String dir, FtpClient ftpClient) { try { ftpClient.cd(dir); } catch (Exception e) { return false; } return true; } /** * ftp上传 * @param localFileFullName 上传的源文件夹 * @return */ public Boolean upload(String localFileFullName) { this.localFileFullName = localFileFullName; try { String savefilename = new String(localFileFullName.getBytes("ISO-8859-1"), "GBK"); // 新建一个 FTP客户端连接 ftpClient = new FtpClient(); ftpClient.openServer(this.ip, this.port); ftpClient.login(this.username, this.password); // 打开本地待长传的文 件 File file_in = new File(savefilename); processFile(file_in, ftpClient); if (is != null) { is.close(); } if (os != null) { os.close(); } if (ftpClient != null) { ftpClient.closeServer(); } return true; } catch (Exception e) { e.printStackTrace(); System.err.println("Exception e in Ftp upload(): " + e.toString()); return false; } } /** * 上传文件 * * @param source * @param ftpClient * @throws Exception */ private void processFile(File source, FtpClient ftpClient) throws Exception { if (source.exists()) { if (source.isDirectory()) { if (!isDirExist(source.getPath().substring( localFileFullName.length()).replace("\\", "/"), ftpClient)) { createDir(source.getPath().substring( localFileFullName.length()).replace("\\", "/"), ftpClient); } File sourceFile[] = source.listFiles(); for (int i = 0; i < sourceFile.length; i++) { if (sourceFile[i].exists()) { if (sourceFile[i].isDirectory()) { this.processFile(sourceFile[i], ftpClient); } else { ftpClient.cd(cheangPath(sourceFile[i].getPath())); ftpClient.binary(); os = ftpClient.put(sourceFile[i].getName()); byte[] bytes = new byte[1024]; is = new FileInputStream(sourceFile[i]); // 开始复制 int c; // 暂未考虑中途终止的情况 while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } is.close(); os.close(); } } } } else { ftpClient.cd(cheangPath(source.getPath())); ftpClient.binary(); os = ftpClient.put(source.getName()); byte[] bytes = new byte[1024]; is = new FileInputStream(source); // 开始复制 int c; // 暂未考虑中途终止的情况 while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } is.close(); os.close(); } } else { throw new Exception("此文件或文件夹[" + source.getName() + "]有误或不存在!"); } } /** * 获取当前的FTP路径 * * @param path * @return */ private String cheangPath(String path) { path = path.substring(localFileFullName.length()).replace("\\", "/"); if ("".equals(path)) { path = "/"; } else { path = path.substring(0, path.lastIndexOf("/") + 1); } return path; } public static void main(String args[]) throws Exception { Ftp ftpup = new Ftp("127.0.0.1", 21, "colin", "colin"); ftpup.upload("E:/test/test"); } }
相关推荐
"FTP上传控件"是专为实现文件上传功能而设计的,它简化了FTP客户端的实现过程,开发者无需深入了解FTP协议的细节,就能在应用中实现文件上传功能。"FTP上传控件"的关键特性包括支持超大文件上传和断点续传。 超大...
Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...
总的来说,使用Java实现FTP上传和下载涉及网络通信、文件操作和错误处理等多个方面的知识。通过"ftpLoadDown.jar"库,我们可以简化这个过程,使得开发者可以专注于业务逻辑,而无需关心底层的FTP协议细节。在实际...
**VB API FTP上传下载源代码详解** 在信息技术领域,FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。在VB(Visual Basic)环境中,我们可以使用API(Application Programming Interface...
在"Go实现FTP上传资源"这个主题中,我们需要关注以下几个关键知识点: 1. **FTP协议基础**:FTP协议由两部分组成,即控制连接和数据连接。控制连接用于发送命令和接收响应,数据连接则用于实际的文件传输。FTP支持...
BoschNetConn可能是你的项目或库的名字,它可能封装了这些libcurl的FTP上传操作,提供了一种更方便的方式来处理网络连接。如果你正在使用这个库,你应该查阅其文档以了解如何具体使用它的API来上传文件。 总之,C++...
在这个"FTP上传与下载程序PB"的案例中,我们将会探讨如何使用PowerBuilder来实现FTP功能,包括文件的上传和下载,以及可能涉及的自动升级机制。 首先,理解FTP的基本概念至关重要。FTP允许用户在两台计算机之间交换...
这个FTP上传实例提供了可视化的进度反馈,使得用户能够清晰地看到文件上传的进度,提高了用户体验。 FTP上传的核心原理是通过FTP客户端连接到FTP服务器,然后将本地文件分块发送到服务器。在这个过程中,通过跟踪已...
**FTP上传文件:** 要实现FTP文件上传,我们首先创建一个`FtpWebRequest`对象,设置其方法为`WebMethod.UploadFile`,然后提供FTP服务器的URL、用户名和密码。接着,打开一个流写入器,将本地文件内容写入请求的主体...
FTP上传和断点续传是网络传输中两个重要的概念,特别是在大文件传输场景下,而更新进度条则是提升用户体验的关键元素。在这个公司项目的第一个版本中,我们关注的是如何实现一个功能完善的FTP上传系统,该系统支持...
FTP上传实现网站预览的过程涉及多个步骤和技术,下面将详细解释这一过程。 1. FTP客户端与服务器: FTP服务需要一个服务器端和客户端。服务器端是存储网站文件的地方,而客户端是用户用来连接服务器并管理文件的...
FTP上传涉及到将本地文件发送到远程FTP服务器。使用libcurl,我们可以通过以下步骤实现: 1. **初始化libcurl**:创建一个`CURL`指针,并调用`curl_global_init()`初始化全局设置。 2. **设置URL**:使用`curl_...
萤石云摄像头自动截图以及FTP上传是一个集成自动化与远程存储功能的系统,它结合了现代监控设备的技术优势,为用户提供了一种高效、便捷的方式来管理和获取摄像头捕获的图像。在这个系统中,萤石云摄像头扮演着核心...
Delphi FTP上传程序是使用Delphi7开发的一个应用程序,它实现了通过FTP(文件传输协议)将本地文件上传到远程服务器的功能。FTP是一种广泛用于互联网上的标准协议,允许用户在计算机之间传输文件。在这个项目中,...
FTP上传程序就是实现这一功能的应用,允许用户将本地计算机上的文件或目录上传到远程FTP服务器上。这种程序通常具有用户友好的界面,简化了文件传输过程。 在"FTP上传程序(典型的ftp上传应用)"中,重点在于程序...
标题“FTP上传与下载pb9.0code”指的是使用PowerBuilder 9.0(简称PB9)开发的一个程序,该程序实现了FTP(File Transfer Protocol)的上传和下载功能。PowerBuilder是一款强大的可视化编程工具,特别适合于构建...
FTP(File Transfer Protocol)是一种基于TCP/IP协议的...综上所述,FTP上传涉及到网络通信、身份验证、文件操作等多个方面,理解并熟练运用FTP上传能有效提高工作效率,特别是在需要跨网络共享和管理文件的环境中。
在这个场景中,我们关注的是一个基于Java开发的FTP上传工具,它能够帮助用户将本地文件上传到FTP服务器。以下是一些关于FTP上传工具和相关技术的知识点: 1. **FTP基本概念**: FTP是一个应用层协议,基于TCP/IP...
很好用的ftp上传工具,上传速度也很快,很好用的ftp上传工具,上传速度也很快,很好用的ftp上传工具,上传速度也很快,
在VC++中实现FTP上传和下载功能,开发者通常会利用WinInet库或第三方FTP库。 首先,让我们深入了解一下FTP上传。FTP上传是指将本地计算机上的文件发送到FTP服务器的过程。在VC++中,可以使用WinInet API来实现这一...