0

誰かがSDカードからサーバーディレクトリに画像をアップロードするのを手伝ってもらえますか?ディレクトリが存在する場合、そこにアップロードする必要があります。それ以外の場合は、そのパスにディレクトリを作成し、ftpを使用して画像をアップロードする必要があります。

4

2 に答える 2

0

SimpleFTP というライブラリを使用できます。simpleftp.jar をクラスパスに追加し、必要な場所にパッケージをインポートします。

import org.jibble.simpleftp.*;

try
{
    SimpleFTP ftp = new SimpleFTP();

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

    // Set binary mode(used to prevent file corruption etc)
    ftp.bin();

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

    // Upload some files.
    ftp.stor(new File("pic1.png"));
    ftp.stor(new File("pic2.png"));
    ftp.stor(new File("pic3.png"));

    // or use an InputStream like so:
    ftp.stor(new FileInputStream(new File("file1.png")), "file1.png");
    ftp.stor(mySocket.getInputStream(), "file2.png");

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

ここから jar ファイルをダウンロードします: http://www.jibble.org/files/simpleftp.jar

于 2012-10-29T05:06:26.523 に答える
0

Apache FTP クライアントを使用する

http://commons.apache.org/net/download_net.cgi

サンプルコード:

public static FTPClient uploadingFilestoFtp() throws IOException
    {
    FTPClient ftpClient = new FTPClient();
    ftpClient.connect(InetAddress.getByName(host));
    ftpClient.login(username,password);
        ftpClient.changeWorkingDirectory(workdir);
        return ftpClient;
    }


class UploadVideo extends AsyncTask<String,Integer,String>
    {

        @Override
        protected String doInBackground(String... params) 
        {
            // TODO Auto-generated method stub
            try
            {
            ftpClient=uploadingFilestoFtp();
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            ftpClient.enterLocalPassiveMode();
            File file = new File(params[0]);
            videoFileSize=file.length();
            BufferedInputStream buffIn = new BufferedInputStream(
                    new FileInputStream(file));
            ProgressInputStream progressInput = new ProgressInputStream(buffIn);
            String randomid=UUID.randomUUID().toString();
            OutputStream os=ftpClient.storeFileStream(randomid+"-"+preferences.getStudentId()+".mp4");


            byte data[] = new byte[1024];
            long total = 0;
            int count;
            while ((count = progressInput.read(data)) != -1) {
                total += count;
                publishProgress((int) (total * 100 / videoFileSize));
                os.write(data, 0, count);
            }

            os.flush();
            os.close();
            progressInput.close();
            buffIn.close();

            }
            catch(IOException e)
            {
                e.printStackTrace();

            }
            return null;
        } 
        @Override
        protected void onPreExecute() 
        {
            super.onPreExecute();
            dialog.show();
        }

        @Override
        protected void onPostExecute(String result)
        {
            // TODO Auto-generated method stub
            super.onPostExecute(result);

        }
    }
于 2012-10-29T05:06:26.377 に答える