在Android上使用FTP上传图片

时间:2022-11-04 08:01:14

How can I upload images using FTP on Android?

如何在Android上使用FTP上传图片?

2 个解决方案

#1


6  

Use SimpleFTP, simply add simpleftp.jar to your classpath and import the package in whichever classes will use it: Download here

使用SimpleFTP,只需添加SimpleFTP。将jar导入到类路径中,并在任何类中导入包:在这里下载

import org.jibble.simpleftp.*;

Make sure you use binary mode when uploading images and suchlike, or they may become corrupted.

在上传图片或类似图片时,请确保使用二进制模式,否则它们可能会被损坏。

try
{
    SimpleFTP ftp = new SimpleFTP();

    // Connect to an FTP server on port 21.
    ftp.connect("ftp.somewhere.net", 21, "username", "password");

    // Set binary mode.
    ftp.bin();

    // Change to a new working directory on the FTP server.
    ftp.cwd("web");

    // Upload some files.
    ftp.stor(new File("webcam.jpg"));
    ftp.stor(new File("comicbot-latest.png"));

    // You can also upload from an InputStream, e.g.
    ftp.stor(new FileInputStream(new File("test.png")), "test.png");
    ftp.stor(someSocket.getInputStream(), "blah.dat");

    // Quit from the FTP server.
    ftp.disconnect();
}
catch (IOException e)
{
    e.printStackTrace();
}

This was all the functionality, so it does not let you download files!

这是所有的功能,所以它不允许你下载文件!

#2


3  

Download the FTP Jar Library from Here

从这里下载FTP Jar库。

public void sendFileViaFTP() {

    FTPClient ftpClient = null;

    try {
        ftpClient = new FTPClient();
        ftpClient.connect(InetAddress.getByName("ftp.myserver.com"));

        if (ftpClient.login("myftpusername", "myftppass")) {

            ftpClient.enterLocalPassiveMode(); // important!
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            String Location = Environment.getExternalStorageDirectory()
                    .toString();
            String data = Location + File.separator + "FileToSend.txt";
            FileInputStream in = new FileInputStream(new File(data));
            boolean result = ftpClient.storeFile("FileToSend.txt", in);
            in.close();
            if (result)
                Log.v("upload result", "succeeded");
            ftpClient.logout();
            ftpClient.disconnect();

        }
    } catch (Exception e) {
        Log.v("count", "error");
        e.printStackTrace();
    }

}

This will work for sure. I've done this many times.

这肯定行得通。我做过很多次了。

#1


6  

Use SimpleFTP, simply add simpleftp.jar to your classpath and import the package in whichever classes will use it: Download here

使用SimpleFTP,只需添加SimpleFTP。将jar导入到类路径中,并在任何类中导入包:在这里下载

import org.jibble.simpleftp.*;

Make sure you use binary mode when uploading images and suchlike, or they may become corrupted.

在上传图片或类似图片时,请确保使用二进制模式,否则它们可能会被损坏。

try
{
    SimpleFTP ftp = new SimpleFTP();

    // Connect to an FTP server on port 21.
    ftp.connect("ftp.somewhere.net", 21, "username", "password");

    // Set binary mode.
    ftp.bin();

    // Change to a new working directory on the FTP server.
    ftp.cwd("web");

    // Upload some files.
    ftp.stor(new File("webcam.jpg"));
    ftp.stor(new File("comicbot-latest.png"));

    // You can also upload from an InputStream, e.g.
    ftp.stor(new FileInputStream(new File("test.png")), "test.png");
    ftp.stor(someSocket.getInputStream(), "blah.dat");

    // Quit from the FTP server.
    ftp.disconnect();
}
catch (IOException e)
{
    e.printStackTrace();
}

This was all the functionality, so it does not let you download files!

这是所有的功能,所以它不允许你下载文件!

#2


3  

Download the FTP Jar Library from Here

从这里下载FTP Jar库。

public void sendFileViaFTP() {

    FTPClient ftpClient = null;

    try {
        ftpClient = new FTPClient();
        ftpClient.connect(InetAddress.getByName("ftp.myserver.com"));

        if (ftpClient.login("myftpusername", "myftppass")) {

            ftpClient.enterLocalPassiveMode(); // important!
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            String Location = Environment.getExternalStorageDirectory()
                    .toString();
            String data = Location + File.separator + "FileToSend.txt";
            FileInputStream in = new FileInputStream(new File(data));
            boolean result = ftpClient.storeFile("FileToSend.txt", in);
            in.close();
            if (result)
                Log.v("upload result", "succeeded");
            ftpClient.logout();
            ftpClient.disconnect();

        }
    } catch (Exception e) {
        Log.v("count", "error");
        e.printStackTrace();
    }

}

This will work for sure. I've done this many times.

这肯定行得通。我做过很多次了。