簡單java單檔案ftp上傳下載

來源:互聯網
上載者:User

所需jar包:commons-io-1.3.2.jar  commons-net-3.0.1.jar

首先在自己的電腦上建立ftp伺服器,網上有很多軟體可以實現,我用的是quick easy ftp server

這裡伺服器的根目錄為:E:/myftp

package ftp;

import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTPClient;

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

public class FtpTest
{
    public static void main(String[] args)
    {
        testUpload();
        testDownload();
    }
    
    /** 
     * FTP上傳單個檔案測試 
     */
    public static void testUpload()
    {
        FTPClient ftpClient = new FTPClient();
        FileInputStream fin = null;
        
        try
        {
            ftpClient.setDefaultPort(222);
            ftpClient.connect("192.168.199.117");
            
            if (!ftpClient.login("admin", "admin"))
            {
                System.out.print("login error !");
                return;
            }
            

            //要上傳的檔案為touxiang.jpg
            File srcFile = new File("E:/myftp/touxiang.jpg");
            fin = new FileInputStream(srcFile);

            //設定上傳目錄 這裡upload為根目錄的下一級檔案夾

            ftpClient.changeWorkingDirectory("/upload");
            ftpClient.setBufferSize(1024);
            ftpClient.setControlEncoding("GBK");
            //設定檔案類型(二進位) 
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

            //上傳上來的檔案儲存體為檔案名稱為upload.jpg的檔案
            ftpClient.storeFile("upload.jpg", fin);
        }
        catch (IOException e)
        {
            e.printStackTrace();
            throw new RuntimeException("some ftp client error happened !", e);
        }
        finally
        {
            IOUtils.closeQuietly(fin);
            try
            {
                ftpClient.disconnect();
            }
            catch (IOException e)
            {
                e.printStackTrace();
                throw new RuntimeException("failed to close ftp connection !", e);
            }
        }
    }
    
    /** 
     * FTP下載單個檔案測試 
     */
    public static void testDownload()
    {
        FTPClient ftpClient = new FTPClient();
        FileOutputStream fos = null;
        
        try
        {
            ftpClient.setDefaultPort(222);
            ftpClient.connect("192.168.199.117");
            if(!ftpClient.login("admin", "admin"))
            {
                System.out.print("login error !");
                return;
            }
            String remoteFileName = "/touxiang.jpg";
            fos = new FileOutputStream("E:myftp/download/down.jpg");
            
            ftpClient.setBufferSize(1024);
            //設定檔案類型(二進位) 
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftpClient.retrieveFile(remoteFileName, fos);
        }
        catch (IOException e)
        {
            e.printStackTrace();
            throw new RuntimeException("some ftp client error happened !", e);
        }
        finally
        {
            IOUtils.closeQuietly(fos);
            try
            {
                ftpClient.disconnect();
            }
            catch (IOException e)
            {
                e.printStackTrace();
                throw new RuntimeException("failed to close ftp connection !", e);
            }
        }
    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.