2016-10-03 3 views
0

volleyライブラリを使用してイメージをアップロードしようとしていますが、正確にはわかりません。イメージファイルをサーバーに、文字列パラメータとともにアップロードする方法

私は以前に質問したことはありますが、何も満足していないようです。ここで

は私がacheiveするのに必要なものです:画像をアップロードするための

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 

        Log.d("**********", " Response Received is " + response); 

        try { 

         JSONObject jsonObject = new JSONObject(response); 

         Log.d("**********", "STRING TO JSON CONVERSION DONE , IT IS " + jsonObject.toString()); 

         ParseReqOtp parseReqOtp = new ParseReqOtp(); 
         parseReqOtp.parseImageupload(jsonObject); 


        } catch (Exception e) { 
         Log.d("**********", "ERROR IN STRING TO JSON CONVERSION  " + e.toString()); 

        } 
        Log.d("**********", "FETCHING IN VOLLEY REQ" + response); 




       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(AddPic.this, error.toString(), Toast.LENGTH_LONG).show(); 
       } 
      }) { 
     @Override 
     protected HashMap<String,String> getParams() { 

      HashMap<String, String> params = new HashMap<String, String>(); 
     params.put("id", BaseActivity.getBaseActivity().getEstablishment_id()); 
     params.put("type", "photos"); 
     params.put("example_file",file.toString()); 

     } 


    }; 
+0

使用Cloudinaryサードパーティのライブラリを:

以下

enter image description here

は、私が使用しようとしたコードです。そのCDNは、画像を保存し、異なる解像度で画像を取り出すことができます。 – Pankaj

+0

イメージをファイルとして送信しているようです。ボレーで_MultiPartEntity_を使用する必要があります。 – Piyush

+0

'params.put(" example_file "、file.toString()'。ファイルをアップロードする際に問題がある場合は、 'ファイル'に何をどのように入れるのかを正確に表示する必要があります。 – greenapps

答えて

0
private void uploadImageWithStringParamsToServer() { 
    SimpleMultiPartRequest smr = new SimpleMultiPartRequest(Request.Method.POST, "http://139.59.16.103/addImage", 
     new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       Log.d("Response", response); 

       Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show(); 

      } 
     }, 
     new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show(); 
      } 
    }); 

    smr.addStringParam("id", "821470"); 
    smr.addStringParam("type", "photos"); 
    smr.addFile("example_file", "2014-11-17 17.08.33-2.jpg"); 
    smr.setFixedStreamingMode(true); 
    smr.setOnProgressListener(this); 

    RequestQueue mRequestQueue = Volley.newRequestQueue(this); 
    mRequestQueue.add(smr); 
    mRequestQueue.start(); 
} 
+0

SimpleMultiPartRequestのコードを投稿できますか? –

+0

https://を参照してください。 github.com/DWorkS/VolleyPlus/blob/master/library/src/com/android/volley/request/SimpleMultiPartRequest.java @AnishKumar –

+0

Thanks @Clive Seebregts –

関連する問題