Saltar al contenido

¿Cómo cargar una imagen en el servidor usando Volley?

El paso a paso o código que hallarás en este artículo es la resolución más eficiente y válida que hallamos a esta inquietud o dilema.

Solución:

Puede probar este método, que realmente funcionó para un proyecto. Primero debe elegir la imagen de la galería y luego debe convertirse a string y enviado por volea al servidor

// initialize
   private int PICK_IMAGE_REQUEST = 1;

    //set click listener 
         Upload.setOnClickListener(new View.OnClickListener() 
                    @Override
                    public void onClick(View v) 
                        //method to upload the image
                         showFileChooser();
       
                    
                );
        

Método para abrir la galería y elegir la imagen.

                 private void showFileChooser() 
                     Intent pickImageIntent = new Intent(Intent.ACTION_PICK,
                 android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                                pickImageIntent.setType("image/*");
                                pickImageIntent.putExtra("aspectX", 1);
                                pickImageIntent.putExtra("aspectY", 1);
                                pickImageIntent.putExtra("scale", true);
                                pickImageIntent.putExtra("outputFormat",
                                Bitmap.CompressFormat.JPEG.toString());
                                startActivityForResult(pickImageIntent, PICK_IMAGE_REQUEST); 
                         
              

Agregue este método Aquí la imagen se envía al servidor.

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
                        super.onActivityResult(requestCode, resultCode, data);
                        if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) 
                            Uri filePath = data.getData();
                            try 
                                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
                                Bitmap lastBitmap = null;
                                lastBitmap = bitmap;
                               //encoding image to string  
                                String image = getStringImage(lastBitmap);
                                Log.d("image",image);
                                //passing the image to volley
                                SendImage(image);
                         
                             catch (IOException e) 
                                e.printStackTrace();
                            
                        
                    
        
       

 

Método para codificar la imagen como string

 public String getStringImage(Bitmap bmp) 
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                        byte[] imageBytes = baos.toByteArray();
                        String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
                        return encodedImage;
                
                    
            
    



    

subiendo usando voley

 private void SendImage( final String image) 
            final StringRequest stringRequest = new StringRequest(Request.Method.POST, "URL",
                    new Response.Listener() 
                        @Override
                        public void onResponse(String response) 
                            Log.d("uploade",response);
                            try 
                                JSONObject jsonObject = new JSONObject(response);
                               
                                
                             catch (JSONException e) 
                                e.printStackTrace();
                            
    
                        
                    ,
                    new Response.ErrorListener() 
                        @Override
                        public void onErrorResponse(VolleyError error) 
                            Toast.makeText(Edit_Profile.this, "No internet connection", Toast.LENGTH_LONG).show();
                           
                        
                    ) 
                @Override
                protected Map getParams() throws AuthFailureError 
    
                    Map params = new Hashtable();
                  
                    params.put("image", image);
                    return params;
                
            ;
            
                int socketTimeout = 30000;
                RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
                stringRequest.setRetryPolicy(policy);
                RequestQueue requestQueue = Volley.newRequestQueue(this);
                requestQueue.add(stringRequest);
            
        }

Debe comprender el concepto para usar la biblioteca de voleibol y la carga de imágenes. Aquí hay algunos otros enlaces útiles para la carga de imágenes y el uso de la biblioteca de voleibol.

biblioteca de voleibol

Carga de imágenes usando multiparte

Nota: También he probado que el código de tu tutorial está bien. Verifique la ruta de la imagen correctamente. Si es posible, utilice su código php en cualquier servidor web alojado. y verifique su respuesta json y verifique su parámetro que ha pasado con los parámetros del script del servidor.

Tienes la opción de avalar nuestra publicación poniendo un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *