Multipart Request с Volley, у меня есть изображение на сервере, но я хочу загрузить PDF или другой файл?Как добавить для поддержки всех типов файлов? - PullRequest
0 голосов
/ 21 мая 2019
private void uploadFile(final Bitmap bitmap) {

    final String topic_id = getIntent().getExtras().getString("topic_id");

    final String sno = getIntent().getExtras().getString("sno");
    VolleyMultipartRequest volleyMultipartRequest = new VolleyMultipartRequest(Request.Method.POST, URL_INSERT,
            new Response.Listener<NetworkResponse>() {
                @Override
                public void onResponse(NetworkResponse response) {
                    try {
                      //  JSONObject obj = new JSONObject(new String(response.data));
                        JSONObject jsonObject = new JSONObject();
                        String success = jsonObject.getString("m_insert_status");
                        JSONArray jsonArray = jsonObject.getJSONArray("data");

                        if (success.equals("true")) {
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject object = jsonArray.getJSONObject(i);
                                Toast.makeText(getApplicationContext(), object.getString("message"), Toast.LENGTH_SHORT).show();

                               // startActivity(getIntent());
                            }
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }) {

        /*
         * If you want to add more parameters with the image
         * you can do it here
         * here we have only one parameter with the image
         * which is tags
         * */
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("sno", sno);
            params.put("topic_id", topic_id);


            return params;
        }

        /*
         * Here we are passing image by renaming it with a unique name
         * */
        @Override
        protected Map<String, VolleyMultipartRequest.DataPart> getByteData() {
            Map<String, VolleyMultipartRequest.DataPart> params = new HashMap<>();
            long imagename = System.currentTimeMillis();
            params.put("attach_files", new VolleyMultipartRequest.DataPart(imagename + ".jpg", getFileDataFromDrawable(bitmap)));
            return params;
        }
    };

    //adding the request to volley
    Volley.newRequestQueue(this).add(volleyMultipartRequest);

}

Я хочу разработать приложение для Android для загрузки всех типов файлов на сервер.Но код предназначен только для загрузки файла изображения.Как изменить, чтобы загрузить все типы файлов.Я перепробовал много методов.Но результат не получается.Пожалуйста, помогите мне.

...