您的位置:首页 > 编程语言 > PHP开发

FTP上传下载文件,利用FTP传输文件到指定目录

2013-07-31 10:34 691 查看
package com.xx.util;

/**
* <p>
* Title: FtpUtil
* </p>
* <p>
* Description FTP上传文件类,利用FTP协议传输文件到指定目录
* </p>
* <p>
*/

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

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

public class FtpUtil {

private FtpClient ftpClient;

// 连接ftp服务器
public void connectServer(String server, String user, String password,
String path) throws IOException {
// server:FTP服务器的IP地址;user:登录FTP服务器的用户名
// password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径
ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
// path是ftp服务下主目录的子目录
if (path.length() != 0)
ftpClient.cd(path);
// 用2进制上传
ftpClient.binary();
}

// 上传文件;并返回上传文件的信息
public String upload(String oldFileName,String newFileName) throws Exception {
TelnetOutputStream os = null;
FileInputStream is = null;
try {
// "upftpfile"用ftp上传后的新文件名
os = ftpClient.put(newFileName);
java.io.File file_in = new java.io.File(oldFileName);
if (file_in.length() == 0) {
return "上传文件为空!";
}
is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
return "上传文件成功!";
}

public String upload(byte [] by, String newFileName) throws Exception {
TelnetOutputStream os =null;
try{
if(by.length==0){
return "上传文件为空!";
}
os = ftpClient.put(newFileName);
os.write(by);
}catch(Exception e){
e.printStackTrace();
}finally{
if (os != null) {
os.close();
}
}
return "上传文件成功!";
}

public boolean uploadftp(byte [] by, String newFileName) throws Exception {
boolean res=false;
TelnetOutputStream os =null;
try{
if(by.length==0){
return res;
}
os = ftpClient.put(newFileName);
os.write(by);
res=true;
}catch(Exception e){
e.printStackTrace();
}finally{
if (os != null) {
os.close();
}
}
return res;
}

/**
* 从FTP将文件下载到本地
* @param filename
* @param newfilename
* @return
* @throws Exception
*/
public long download(String filename, String newfilename) throws Exception {
long result = 0;
TelnetInputStream is = null;
FileOutputStream os = null;
try {
is = ftpClient.get(filename);
java.io.File outfile = new java.io.File(newfilename);
os = new FileOutputStream(outfile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
result = result + c;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
return result;
}

public static void main(String args[]) {
FtpUtil ftputil = new FtpUtil();
try {
// 连接ftp服务器
ftputil.connectServer("xxx.xxx.xxx.xxx", "sxx", "xxx",
"/xxx/sxdoc/user_projects/domains/Data/");
// 上传文件;并返回上传文件的信息
//			ftputil.upload("c:/test.txt","test.txt");
String str="";
byte [] by=str.getBytes();
ftputil.upload(by,"test.txt");
} catch (Exception e) {
System.out.println(e.toString());
return;
} finally {
try {
if (ftputil.ftpClient != null) {
ftputil.ftpClient.closeServer();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

public FtpClient getFtpClient() {
return ftpClient;
}

public void setFtpClient(FtpClient ftpClient) {
this.ftpClient = ftpClient;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐