2012-01-02 8 views
0

私は同様の質問を探して見つけました。 2つの質問イメージをmySQLデータベースのBIN形式でAndroid Appにダウンロード

[すべてのPHPとmySQL BLOBで]サイドが行われています。ドロワブル/イメージをデータベースにアップロードするにはどうしたらいいですか?私は

public void AddRecord(String spin_cb, String statusinput_cb, String comment_cb, Drawable image_cb) { 

     try { 
      //SQLiteDatabase db = _dbHelper.getWritableDatabase(); THIS IS THE LOCAL DATABASE LOGIC DISABLED 
      /*ContentValues values = new ContentValues(); 
      values.put(Column_itemcatagory,itemcatagory); 
      values.put(Column_itemtype,itemtype); 
      values.put(Column_itemdesc, itemdesc); 
      values.put(Column_contact, contact); 
      values.put(Column_reward, reward); 

      db.insert(TABLE_NAME, "", values);*/ 

      ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 

      nameValuePairs.add(new BasicNameValuePair("cb_spin", spin_cb)); 
      nameValuePairs.add(new BasicNameValuePair("cb_status", statusinput_cb)); 
      nameValuePairs.add(new BasicNameValuePair("cb_rate", comment_cb)); 
      nameValuePairs.add(new BasicNameValuePair("cb_image", image_cb.toString())); 


      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://www.bidland.ie/carbook/Insert.php"); 

      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      InputStream is = entity.getContent(); 

     }catch (Exception e) 
     { 
      Log.e(tag,"AddRecord Exception [" + e.getMessage() + "]"); 
     } 
    } 

をしようとしている。しかしDrawableのでnamesvaluepairなりませんか?

2私がmySQLで作成したレコードは、どうすれば読み戻すことができますか?JSONは完全に文字列を処理していますが、イメージを元に戻す方法はありますか?

答えて

0

アップロードについては、this oneまたはthis oneのように、ウェブ上に複数のチュートリアルがあります。

イメージを取り戻すことについては、BLOBはSQLiteにバイト配列として格納されていると思いますので、入力ストリームを取得し、バイト配列に変換してContentValuesに入れなければなりません。 IOUtilsは、Apach commons-io libのものです。ネットワーク負荷とデータベース書き込みがバックグラウンドで実行されなければならないとして、このは、AsynTaskでをDONEしなければならないことを

InputStream is = entity.getContent(); 
byte[] bytes = IOUtils.toByteArray(is); 
ContentValues values = new ContentValues(); 
values.put("cb_image", bytes); 
... 
db.insert(TABLE_NAME, "", values); 

注:あなたのコードの最後の行から

関連する問題