How to do upload image with Volley library?

前端 未结 2 1175
傲寒
傲寒 2020-12-11 19:48

I have an image and I want to upload this image to my web service using Volley library, the problem is I\'m looking for a how to do it but still haven\'t found.

I fo

2条回答
  •  伪装坚强ぢ
    2020-12-11 20:46

    i am not much familier with volley, but give a try to the following code

    //JSON Request

    public MySampleImageUpload() { 
        JSONRequestResponse mResponse = new  
        JSONRequestResponse(mContext);
    
        Bundle parms = new Bundle();
        parms.putString("key_meail", "rojesh@demo.com");
        parms.setFile("key_url", image_path);
    
        mResponse.getResponse("sample_upload_data_url", REQUEST_CODE, this,
            parms);
    }
    

    // In SetFile & getResponse code

    package com.fartogram.utils;
    
    import java.io.File;
    
    import org.json.JSONObject;
    
    import android.content.Context;
    import android.os.Bundle;
    
    import com.android.volley.Request;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.examples.toolbox.MultipartRequest;
    import com.android.volley.examples.toolbox.MyVolley;
    import com.android.volley.toolbox.JsonObjectRequest;
    
    public class JSONRequestResponse {
    
        public JSONRequestResponse(Context cntx) {
            mContext = cntx;
        }
    
        private final Context mContext;
        private int reqCode;
        private IParseListener listner;
    
        private boolean isFile = false;
        private String file_path = "", key = "";
    
        public void getResponse(String url, final int requestCode,
                IParseListener mParseListener) {
            getResponse(url, requestCode, mParseListener, null);
        }
    
        public void getResponse(String url, final int requestCode,
                IParseListener mParseListener, Bundle params) {
            this.listner = mParseListener;
            this.reqCode = requestCode;
    
            Response.Listener sListener = new Response.Listener() {
                @Override
                public void onResponse(JSONObject response) {
                    if (listner != null) {
                        listner.SuccessResponse(response, reqCode);
                    }
                }
            };
    
            Response.ErrorListener eListener = new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    if (listner != null) {
                        listner.ErrorResponse(error, reqCode);
                    }
                }
            };
    
            if (!isFile) {
                JsonObjectRequest jsObjRequest = new JsonObjectRequest(
                    Request.Method.GET, url, null, sListener, 
    
    eListener);
                MyVolley.getRequestQueue().add(jsObjRequest);
            } else {
                    if (file_path != null) {
                        File mFile = new File(file_path);
                        MultipartRequest multipartRequest = 
        new MultipartRequest(url,eListener, sListener, key, mFile, params);
                    MyVolley.getRequestQueue().add(multipartRequest);
                } 
            }
        }
    
        public boolean isFile() {
            return isFile;
        }
    
    
        public void setFile(String param, String path) {
            if (path != null && param != null) {
                key = param;
                file_path = path;
                this.isFile = true;
            }
        }
    
    }
    

    If it works for you mark it as right :)

提交回复
热议问题