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