`

FTP上传文件

    博客分类:
  • Java
阅读更多
package cn.com.songjy;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.log4j.Logger;

import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

public class FTPUPload {

	private static Logger log = Logger.getLogger(FTPUPload.class);
	static FtpClient ftpClient = null;

	/**
	 * 建立FTP连接
	 * @method connection
	 * @param ip 远程计算机IP
	 * @param user ftp用户
	 * @param password ftp用户的密码
	 * @param newpath 远程计算机目录
	 * @return
	 */
	public static boolean connection(String ip, String user, String password,
			String newpath) {
		
		log.info("远程IP地址:"+ip);
		log.info("FTP账户:"+user);
		log.info("FTP账户密码:"+password);
		log.info("远程目录:"+newpath);
		
		ftpClient = new FtpClient();
		try {
			ftpClient.openServer(ip);
			ftpClient.login(user, password);
			if (newpath.length() > 0) {
				ftpClient.cd(newpath);
			}
			ftpClient.binary();
			return true;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return false;
	}

	/**
	 * 上传文件至远程计算机
	 * @method upload
	 * @param ip 远程计算机IP
	 * @param user ftp用户
	 * @param password ftp用户的密码
	 * @param path 需上传文件的路径
	 * @param newPath 远程ftp上传目录
	 */
	public static void upload(String ip, String user, String password,
			String path, String newPath) {
		
		File file = new File(path);
		
		if (!file.exists()){
			log.info("文件不存在!");
			return;
		}
		
		log.info("上传文件全路径:"+file.getAbsolutePath());
		
		//建立FTP连接
		boolean conn=connection(ip,user,password,newPath);
		
		if(false==conn){
			log.info("建立FTP连接失败!");
			return;
		}
		
		System.getProperties().put("file.encoding", "UTF-8");
		TelnetOutputStream os = null;
		FileInputStream is = null;
		
		try {
			
			is = new FileInputStream(file);
			File newfile=new File(newPath);
			if(newfile.exists()){
				newfile.mkdirs();
				newfile.createNewFile();
			}
			
			
			os = ftpClient.put(newPath+file.getName());
			byte[] b = new byte[1024];
			int c;
			log.info("开始上传文件...");
			while (-1 != (c=is.read(b))) {
				os.write(b, 0, c);
			}
			os.flush();
			os.close();
			is.close();
			
			log.info("文件上传完毕!");
			
			if (null != ftpClient)
				ftpClient.closeServer();
			
		} catch (IOException e) {
			System.err.println("上传文件异常!");
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		upload("192.168.23.1", "songjy", "123456","E:\\Workspaces\\java\\srt\\ezg\\demo-web\\pom.xml", "/songjy/upload/");
	}

}


运行结果如下:
[demo-web] [2013-01-09 14:41:00,562] INFO [main] cn.com.songjy.FTPUPload.upload(68) | 上传文件全路径:E:\Workspaces\java\srt\ezg\demo-web\pom.xml
[demo-web] [2013-01-09 14:41:00,562] INFO [main] cn.com.songjy.FTPUPload.connection(29) | 远程IP地址:192.168.23.1
[demo-web] [2013-01-09 14:41:00,562] INFO [main] cn.com.songjy.FTPUPload.connection(30) | FTP账户:songjy
[demo-web] [2013-01-09 14:41:00,562] INFO [main] cn.com.songjy.FTPUPload.connection(31) | FTP账户密码:123456
[demo-web] [2013-01-09 14:41:00,562] INFO [main] cn.com.songjy.FTPUPload.connection(32) | 远程目录:/songjy/upload/
[demo-web] [2013-01-09 14:41:00,609] INFO [main] cn.com.songjy.FTPUPload.upload(95) | 开始上传文件...
[demo-web] [2013-01-09 14:41:00,609] INFO [main] cn.com.songjy.FTPUPload.upload(103) | 文件上传完毕!


log4j.properties

log4j.rootCategory=INFO, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[demo-web] [%d{yyyy-MM-dd HH:mm:ss,SSS}] %p [%t] %C.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=../logs/demo-web.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

log4j.logger.com.neusoft=DEBUG
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=DEBUG
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL

log4j.logger.com.canoo.webtest=WARN

log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.logicalcobwebs=WARN



参阅(通过FTP4J 实现FTP各种操作):http://cuisuqiang.iteye.com/blog/1774600
分享到:
评论

相关推荐

    Labview FTP上传文件

    Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...

    C++ libcurl ftp上传文件

    FTP上传文件的核心在于`curl_easy_setopt()`函数,它可以设置各种选项来定制FTP请求。首先,设置URL为FTP服务器的地址: ```cpp curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/path/to/file"); ``` ...

    php处理ftp上传文件

    ### PHP处理FTP上传文件知识点详解 #### 一、利用PHP内置文件函数实现文件上传 **1.1 上传文件表单设计(upload.html)** 在实现文件上传功能时,首先需要设计一个表单用于接收用户的文件输入。在这个例子中,`...

    C语言实现FTP上传文件(支持windows和linux)

    以下是实现FTP上传文件的基本步骤: 1. **初始化libcurl**:首先,我们需要调用`curl_global_init()`函数对libcurl进行全局初始化。 2. **创建会话句柄**:使用`curl_easy_init()`创建一个CURL对象,这将作为我们...

    asp.net利用ftp上传文件实现示例代码

    以下是一个简单的FTP上传文件的步骤: 1. **创建FtpWebRequest对象**:首先,我们需要创建一个`FtpWebRequest`实例,设置其`Method`属性为`WebRequestMethods.Ftp.UploadFile`,并指定FTP服务器的URL和文件路径。 ...

    winfrom连接FTP上传文件

    下面是一个简单的FTP连接和上传文件的步骤: 1. **建立FTP连接**:创建一个`FtpWebRequest`对象,设置其`Method`属性为`WebMethod.UploadFile`,并指定FTP服务器的URL、用户名和密码。 ```csharp FtpWebRequest ...

    定时ftp上传文件

    在IT行业中,定时FTP上传文件是一项常见的自动化任务,尤其对于监控、数据分析或者备份等场景尤为重要。这个任务涉及到几个关键知识点,下面将详细讲解。 首先,我们要理解“定时”这一概念。在计算机领域,定时...

    Android 通过ftp上传文件获取上传速度及进度

    3. **文件上传**:使用`FTPClient`的`storeFile()`方法上传文件,并在此过程中计算上传速度和进度。首先,打开本地文件: ```java FileInputStream fis = new FileInputStream(localFilePath); ``` 然后,使用`...

    java使用FTP上传文件

    java使用FTP上传文件,非常实用 包括创建ftp链接,上传

    VB实现FTP上传文件功能

    可以实现文件上传功能,并能检索到FTP目前的目录

    3dMax脚本开发的FTP上传文件工具下载

    标题提到的“3dMax脚本开发的FTP上传文件工具”就是通过Maxscript编写的一个实用工具,它使得3DMax用户能够方便地将工作成果上传到FTP服务器。 FTP(File Transfer Protocol)是一种网络协议,用于在网络上进行文件...

    c# 实现文件FTP上传服务器

    c# 实现文件FTP上传至服务器  WebClient上传文件至服务器(不带进度条)    要上传的文件(全路径格式)  <param name="strUrlDirPath">Web服务器文件夹路径  <returns>True/False是否上传成功</returns>

    springboot以FTP方式上传文件到远程服务器的流程

    Spring Boot 中使用 FTP 上传文件到远程服务器的流程 在本文中,我们将介绍如何使用 Spring Boot 实现 FTP 上传文件到远程服务器的流程。这个流程包括如何使用 JWT 登录认证及鉴权的流程,以及如何使用 Spring ...

    实现VB FTP上传文件

    使用`STOR`命令上传文件。首先,设置本地文件路径和FTP服务器上的目标路径,然后发送`STOR`命令: ```vb Dim localFilePath As String = "C:\local\file.txt" Dim remoteFilePath As String = "/public_...

    Ftp上传文件和文件夹

    现在让我们深入探讨如何在C#中实现FTP上传文件和文件夹。 首先,要进行FTP上传,我们需要准备以下基本要素: 1. FTP服务器地址:这是你的文件将被上传到的位置,通常以`ftp://`开头。 2. 用户名和密码:用于验证...

    FTP上传文件帮助类

    在这个主题中,我们将深入探讨FTP上传文件的相关知识点,以及如何利用提供的代码实现FTP上传、下载和删除功能。 1. FTP基本概念: FTP是Internet上的标准服务之一,它允许用户从一台计算机(客户端)将文件传输到另...

    java实现的ftp文件上传

    - **上传文件**:调用`FTPClient.storeFile()`或`FTPClient.uploadFile()`方法上传文件。 - **断开连接**:最后,记得调用`FTPClient.logout()`和`FTPClient.disconnect()`断开连接并释放资源。 在开发过程中,还...

    自动化Ftp上传文件工具

    一个简单的命令行实现ftp上传文件或者文件夹 到ftp多个目录下的工具 平时经常会要上传一个文件或者将一个文件夹下面的文件到ftp上面多个目录下,每次都要花费很多时间切换目录,很是麻烦,而且容易出错或者遗漏上传...

    Http上传文件、Ftp上传文件示例

    在IT行业中,文件上传是常见的操作,特别是在Web应用和服务器管理中。...在提供的压缩包中,"Http上传文件示例"和"Ftp上传文件"包含了这两个主题的代码实现,可以帮助学习者深入理解和实践文件上传。

Global site tag (gtag.js) - Google Analytics