2014-02-12 53 views
1

我上傳了使用http:// ... URL的圖片。但我不想使用URL。我想從本地的手機SD卡上滾動上傳圖像。 我試過所有這些解決方案Uploading Images to tumblr API from Android,但沒有爲我工作。上傳Android上的SD卡上的圖片

我投稿的圖像通過URL是這樣的: -

File fil = savebitmap(pattern_a); 
     HttpPost hpost = new HttpPost("http://api.tumblr.com/v2/blog/" 
       + strBlogName.replace(" ", "%20") + ".tumblr.com/post"); 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 

nameValuePairs.add(new BasicNameValuePair("type", "photo")); 
      nameValuePairs.add(new BasicNameValuePair("caption", "hello")); 
      nameValuePairs.add(new BasicNameValuePair("source","http://pchtanks.com/wp-content/uploads/2013/10/tropical-fish11.jpg")); 

UPDATE

我使用這個代碼

 nameValuePairs.add(new BasicNameValuePair("type", "photos")); 
    nameValuePairs.add(new BasicNameValuePair("set_total", "1")); 
      nameValuePairs.add(new BasicNameValuePair("name", "Akanksha")); 
      nameValuePairs.add(new BasicNameValuePair("caption", "Hello yar")); 

      nameValuePairs.add(new BasicNameValuePair("original","0")); 
      nameValuePairs.add(new BasicNameValuePair("data", fil.getAbsolutePath().toString())); 
      nameValuePairs.add(new BasicNameValuePair("source", encodedImage)); 
//    localContentValues2.put("tumblr_post_id", Long.valueOf(paramLong)); 
      nameValuePairs.add(new BasicNameValuePair("width", String.valueOf(pattern_a.getWidth()))); 
      nameValuePairs.add(new BasicNameValuePair("height", String.valueOf(pattern_a.getHeight()))); 
       localArrayList.add(nameValuePairs); 

hpost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 



    consumerconsumer.sign(hpost); 

    DefaultHttpClient client = new DefaultHttpClient(); 
    org.apache.http.HttpResponse resp = null; 
    resp = client.execute(hpost); 

    result = EntityUtils.toString(resp.getEntity()); 
    PrintLog.LOGV("Result : " + result); 

我得到了這樣的encodedImage: -

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    pattern_a.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    String encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT); 

我越來越錯誤: - 牀的要求,帖子不能爲空。

我想我缺少參數中的某些東西,或者我發送任何錯誤的標籤。

任何機構都有任何解決方案。
我已經下載了jumblr jar文件。但我不知道如何使用它。沒有混亂,我的工作是否可能?請回復。

回答

0

該源不指望URL。它期望URI。你試過了:nameValuePairs.add(new BasicNameValuePair("source","file:///sdcard/img.png"));

此外,代替源,您可以指定data並使用字節緩衝區提供圖像的實際字節數