ftp文件上傳,Java上傳

package com.gx.ftp;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class TestFtp {
    
    public static void main(String[] args) {
        String path = "D:/upLoadFiles/APTransferPlan/1a4f74a0-f6ac-4e91-8225-3dca5a7ccad1";
        String filename = "02.jpg";
        String name = null;
        try {
            name = new String(filename.getBytes("GBK"), "iso-8859-1"); // 處理上傳到ftp上的文件名不能爲中文的問題
            FileInputStream in = new FileInputStream(new File(path));
            boolean flag = uploadFile("127.0.0.1", 21, "test", "1","E:/ftptest", name, in);
            
            System.out.println(flag);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }

    /**
     * Description: 向FTP服務器上傳文件
     * @param url: FTP服務器hostname
     * @param port: FTP服務器端口
     * @param username:FTP登錄賬號
     * @param password: FTP登錄密碼
     * @param path:FTP服務器保存目錄
     * @param filename:上傳到FTP服務器上的文件名
     * @param input: 輸入流
     * @return 成功返回true,否則返回false
     */
    public static boolean uploadFile(String url, int port, String username,
            String password, String path, String filename, InputStream input) {
        boolean success = false;
        FTPClient ftp = new FTPClient();
        try {
            int reply;
            ftp.connect(url, port);// 連接FTP服務器
            ftp.login(username, password);// 登錄
            reply = ftp.getReplyCode();
            //處理上傳到ftp的文件打不開,圖片破損等問題
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            ftp.setControlEncoding("GBK");
            
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                return success;
            }
            ftp.changeWorkingDirectory(path);
            ftp.storeFile(filename, input);
            input.close();
            ftp.logout();
            success = true;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ftp.isConnected()) {
                try {
                    ftp.disconnect();
                } catch (IOException ioe) {
                }
            }
        }
        return success;
    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章