`
sunnylocus
  • 浏览: 870238 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

FTP文件上传

阅读更多
package com.bill99.ftpsvr;

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

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


public class FtpTest {
	private final String FTP_IP="127.0.0.1";
	private final int FTP_PORT=21;
	private String ftpfilePath = "/wf"; //ftp存放文件的目录,表示上传的文件入到根目录下的wf文件夹
	private String loginName;  //登陆名
	private String loginpwd;   //密码
	private sun.net.ftp.FtpClient ftpclient = null;
	
	/**
	 * 构造函数
	 * @param loginName 用户名
	 * @param loginpwd 密码
	 */
	public FtpTest(String loginName,String loginpwd){
		this.loginName = loginName;
		this.loginpwd = loginpwd;
	}
	
	/**
	 * 登陆FTP服务器
	 * @return true:登陆成功 false:登陆失败
	 */
	public boolean logonFTP(){
		try {
			ftpclient = new FtpClient(FTP_IP,FTP_PORT);
			ftpclient.login(this.loginName, this.loginpwd);
			ftpclient.cd(ftpfilePath);
			System.out.println("登陆成功");
		} catch(FtpLoginException e) {
			System.out.println("无权限连接");
			return false;
		} catch (IOException e) {
			System.out.println("网络异常");
			return false;
		} 
		return true;
	}
	
	/**
	 * 上传文件
	 * @param fileaname 准备上传的文件
	 */
	public void upFile(String filename)  {
		System.out.println("开始上传文件...");
		TelnetOutputStream ftpout =null;
		TelnetInputStream ftpin = null;
		try {
			ftpclient.binary();
			ftpout = ftpclient.put("upfile.txt");//upfile.txt是上传到ftp服务器后的文件名
			ftpin = new TelnetInputStream(new FileInputStream(filename),true);
			byte[] mybytes = new byte[1024];
			int bufferSize = 0;
			while((bufferSize = ftpin.read(mybytes, 0, mybytes.length))!=-1) {
				ftpout.write(mybytes,0,bufferSize);
			}
			ftpin.close();
			ftpout.close();
		} catch(IOException e) {
			System.out.println("上传文件时发生网络异常");
			e.printStackTrace();
			return ;
		} finally {
			try {
				ftpin.close();
				ftpout.close();
				ftpclient.closeServer();
			} catch(IOException e){e.printStackTrace();}
		}
		System.out.println("文件上传成功");
	}
	
	public static void main(String[] args) throws IOException{
		FtpTest ftp = new FtpTest("test","123456");
		boolean isconnected = ftp.logonFTP();
		if(isconnected) {
			//上传文件
			ftp.upFile("E:\\Tool.java");
		}
	}
}

 

 

分享到:
评论
1 楼 peak 2009-10-19  
用Apache的commons-net更方便一些

相关推荐

Global site tag (gtag.js) - Google Analytics