2012-03-06 46 views
1

我試圖從我的本地服務器檢索圖像文件。從服務器文件系統獲取圖像到android應用程序?

這裏是我的(很簡單)PHP請求:

get_image.php

<?php 
header("Content-type: image/*"); 

$images_folder = "uploads/"; 
$image_name = $_GET['image_id']; 

$image_url = $images_folder . $image_name; 

if (!readfile($image_url)) 
    echo "Error loading file"; 
?> 

如果我在瀏覽器中運行這個命令:

draw_image.php

<img src="get_image.php?image_id=<?php echo $_POST["image_id"]?>" alt="Image"/> 

我畫了我的照片。

現在,如何檢索android應用程序中的這個圖像? 這裏是我的時刻代碼:

public void   GetUserPicture() throws Exception, NumberFormatException 
{ 
    try 
    { 
     String str_image_id = Utils.FromStringToMd5(askme_user.GetLogin() + Utils.SALT); 

     HttpPost post = new HttpPost("http://192.168.0.7/askme/draw_image.php"); 

     List<NameValuePair> php_question = new ArrayList<NameValuePair>(); 
     php_question.add(new BasicNameValuePair("image_id", str_image_id)); 

     post.setEntity(new UrlEncodedFormEntity(php_question, "UTF-8")); 

     HttpClient client = new DefaultHttpClient(); 
     HttpResponse response = client.execute(post); 
     HttpEntity res_entity = response.getEntity(); 

     Log.i(TAG, "Status line : " + response.getStatusLine()); 
     if (res_entity != null) Log.i(TAG, EntityUtils.toString(res_entity)); 
     if (res_entity != null) res_entity.consumeContent(); 
    } 
    catch (Exception e) 
    { 
     Log.e("[GET REQUEST]", "Network exception"); 
    } 
} 

,這裏是當前的日誌我是來自的HttpResponse receving:

Status line : HTTP/1.1 200 OK 
<img src="get_image.php?image_id=971c4623a86a4cbac2f1deffaf3c40" alt="Image"/> 

我有種陷在這裏,我不知道是什麼到下一個...


編輯:多虧了蠶兒,這是我最後的代碼,

String url = "http://192.168.0.7/askme/get_image.php"; 
if (!url.endsWith("?")) 
    url += "?"; 

String str_image_id = Utils.FromStringToMd5(askme_user.GetLogin() + Utils.SALT); 

List<NameValuePair> params = new LinkedList<NameValuePair>(); 
params.add(new BasicNameValuePair("image_id", str_image_id)); 

String str_params = URLEncodedUtils.format(params, "UTF-8"); 

url += str_params; 

HttpClient client = new DefaultHttpClient(); 
HttpGet request = new HttpGet(); 
request.setURI(new URI(url)); 
HttpResponse response = client.execute(request); 
InputStream is_image = response.getEntity().getContent(); 
Drawable drawable = Drawable.createFromStream(is_image, "user_picture"); 

return drawable; 

回答

2

變化HttpPostHttpGet

0
 //declaration 
    boolean net; 
//imageUrl you specify 
    String imageUrl=""; 
    imageUrl=?; 

    //code 
    net = isOnline(); 
    if (net == true) { 
        if (imageUrl != null) 
         try { 

          // where imageUrl is what you pulled out from the rss 
          // feed 
          Bitmap bitmap = BitmapFactory 
            .decodeStream((InputStream) new URL(imageUrl.getContent()); 
          if (bitmap != null) { 
           imageview.setImageBitmap(bitmap); 
          } 
         } catch (MalformedURLException e1) { 
          // log exception here 
         } catch (IOException e1) { 
          Log.e("...............................", "" + e1); 
          // log exception here 
         } 
       } 
    //method 
    public boolean isOnline() { 
      ConnectivityManager cm = (ConnectivityManager) this 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); 
      return activeNetworkInfo != null; 

      // return cm.getActiveNetworkInfo().isConnected(); 

     } 
相關問題