Caricare immagini da Android su PHP MySQL

di il
2 risposte

Caricare immagini da Android su PHP MySQL

Salve a tutti, dovrei inviare immagini da un app android su un db mysql passando le immagini tramite php, questo è il codice android, ma lato server non ho idea di come salvare l'immagine nel db perchè il salvataggio in locale non lo posso usare.
public class MainActivity extends AppCompatActivity implements View.OnClickListener  {

    private Button buttonChoose;
    private Button buttonUpload;

    private ImageView imageView;

    private Bitmap bitmap;

    private int PICK_IMAGE_REQUEST = 1;

    private String UPLOAD_URL ="http://192.168.1.2/upload.php";

    private String KEY_IMAGE = "image";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttonChoose = (Button) findViewById(R.id.buttonChoose);
        buttonUpload = (Button) findViewById(R.id.buttonUpload);

        imageView  = (ImageView) findViewById(R.id.imageView);

        buttonChoose.setOnClickListener(this);
        buttonUpload.setOnClickListener(this);
    }

    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;
    }

    private void uploadImage(){
        //Visualizza il caricamento
        final ProgressDialog loading = ProgressDialog.show(this,"Caricamento immagine...","Per favore attendi...",false,false);
        StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {
                        loading.dismiss();
                        Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        loading.dismiss();

                        Toast.makeText(MainActivity.this, volleyError.getMessage().toString(), Toast.LENGTH_LONG).show();
                    }
                }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                //Converto il bitmap in stringa
                String image = getStringImage(bitmap);

                //Creo i parametri
                Map<String,String> params = new Hashtable<String, String>();

                params.put(KEY_IMAGE, image);

                return params;
            }
        };

        //Creo una coda di richieste
        RequestQueue requestQueue = Volley.newRequestQueue(this);

        //Aggiungo le richieste alla coda
        requestQueue.add(stringRequest);
    }

    private void showFileChooser() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Seleziona il codice QR"), PICK_IMAGE_REQUEST);
    }

    @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 = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);

                imageView.setImageBitmap(bitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

2 Risposte

  • Re: Caricare immagini da Android su PHP MySQL

    Ciao!

    si tratta di inviare i dati in POST.
    quindi android ci entra relativamente.

    da php (o qualsiasi linguaggio lato server) devi elaborare i dati inviati in POST.
    ma dubito che qualcuno lo faccia per te!
    butta giù qualcosa....
  • Re: Caricare immagini da Android su PHP MySQL

    Che poi tra l'altro è quello che ti hanno già detto nell'altro forum......
Devi accedere o registrarti per scrivere nel forum
2 risposte