2014-03-27 150 views
3

我想爲我的上傳組件創建一個暫停和恢復系統。到目前爲止,我能夠直接連續視頻上傳到YM遠程服務器用下面的代碼:Android暫停和恢復上傳

private void uploadVideo(String videoPath) throws Exception 
{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(SEVER_ENDPOINT); 

    FileBody filebodyVideo = new FileBody(new File(videoPath)); 
    StringBody title = new StringBody("Filename: " + videoPath); 
    StringBody description = new StringBody("Short description"); 

    MultipartEntity reqEntity = new MultipartEntity(); 
    reqEntity.addPart("videoFile", filebodyVideo); 
    reqEntity.addPart("title", title); 
    reqEntity.addPart("description", description); 
    httppost.setEntity(reqEntity); 

    if (DEBUG) Log.d(TAG, "executing request " + httppost.getRequestLine()); 
    HttpResponse response = httpclient.execute(httppost); 
    HttpEntity resEntity = response.getEntity(); 

    if (DEBUG) Log.d(TAG, response.getStatusLine()); 
    if (resEntity != null) 
    { 
     if (DEBUG) Log.d(TAG, EntityUtils.toString(resEntity)); 
     resEntity.consumeContent(); 
    } 
    httpclient.getConnectionManager().shutdown(); 
} 

我怎麼會暫停上傳,保存進度。做我想做的任何事情(如殺死應用程序),然後當我重新啓動它,恢復它,並繼續上傳缺少的部分?

Tahnks爲您提供寶貴的幫助。

+0

首先,你需要檢查,如果你的服務器有這樣的斷點續傳的API。如果是的話,你應該使用這個API來做你想做的事情,如果沒有,沒有什麼可以幫助你。 –

回答

1

我終於找到了一個辦法來做到這一點,比從Github的Kienco

這裏是他的代碼的鏈接:https://github.com/kienco/android-simpl3r

+0

嗨曼尼託巴,這個解決方案適用於任何服務器,還是僅限於亞馬遜s3?我想實現這個暫停/恢復上傳在我的應用程序有不同的服務器API。 – skygeek

+0

你好。它應該到處工作。只是不要忘記在你的服務器上實現它。如果你使用'PHP',你可以這樣做:https://hacks.mozilla.org/2011/04/resumeupload/ – Manitoba

+2

嘿,你能詳細描述一下,在我的服務器上實現什麼,有沒有我需要從亞馬遜(免費或付費)使用的服務?我有我的客戶的服務器API和我的android代碼。我想從android實現暫停/恢復文件上傳功能,所以如果我使用這個庫,那麼什麼是訪問密鑰,存儲桶密鑰或密碼等是這樣的事情需要註冊亞馬遜?你能把我放在正確的方向嗎? – skygeek