Upload immagine su server remoto

kalimett

Utente Attivo
29 Apr 2011
39
0
0
Ciao a tutti.

Sto provando ad eseguire l'upload di una fotografia su un server remoto tramite un webservice in asp net.
Il problema in questa classe java è che anche con la fotografia selezionata del form di invio dati, mi viene sempre restituito l'alert "Please select image".

Dove sto sbagliando?
Grazie

Ecco il mio codice:
MainActivity.java

Codice:
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
            ImageView viewImage;
            Button b, upload;
            private Bitmap bitmap;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
    
                    b = (Button) findViewById(R.id.btnSelectPhoto);
                    viewImage = (ImageView) findViewById(R.id.viewImage);
                    upload = (Button) findViewById(R.id.button1);
    
                    b.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                    selectImage();
                            }
                    });
    
                    upload.setOnClickListener(new View.OnClickListener() {
    
                            public void onClick(View v) {
    
                                    if (bitmap == null) {
                                            Toast.makeText(getApplicationContext(),
                                                            "Please select image", Toast.LENGTH_SHORT).show();
                                    } else {
                                            ProgressDialog.show(MainActivity.this, "Uploading"
                                                            + bitmap, "Please wait...", true);
    
                                    }
                            }
                    });
            }
    
            private void selectImage() {
    
                    final CharSequence[] options = { "Take Photo", "Choose from Gallery",
                                    "Cancel" };
    
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("Add Photo!");
                    builder.setItems(options, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int item) {
                                    if (options[item].equals("Take Photo")) {
                                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                                            File f = new File(android.os.Environment
                                                            .getExternalStorageDirectory(), "temp.jpg");
                                            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
                                            startActivityForResult(intent, 1);
                                    } else if (options[item].equals("Choose from Gallery")) {
                                            Intent intent = new Intent(
                                                            Intent.ACTION_PICK,
                                                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                                            startActivityForResult(intent, 2);
    
                                    } else if (options[item].equals("Cancel")) {
                                            dialog.dismiss();
                                    }
                            }
                    });
                    builder.show();
            }
    
            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);
                    if (resultCode == RESULT_OK) {
                            if (requestCode == 1) {
                                    File f = new File(Environment.getExternalStorageDirectory()
                                                    .toString());
                                    for (File temp : f.listFiles()) {
                                            if (temp.getName().equals("temp.jpg")) {
                                                    f = temp;
                                                    break;
                                            }
                                    }
                                    try {
                                            BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
    
                                            bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(),
                                                            bitmapOptions);
    
                                            viewImage.setImageBitmap(bitmap);
    
                                            String path = android.os.Environment
                                                            .getExternalStorageDirectory()
                                                            + File.separator
                                                            + "Phoenix" + File.separator + "default";
                                            f.delete();
                                            OutputStream outFile = null;
                                            File file = new File(path, String.valueOf(System
                                                            .currentTimeMillis()) + ".jpg");
                                            try {
                                                    outFile = new FileOutputStream(file);
                                                    bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
                                                    outFile.flush();
                                                    outFile.close();
                                            } catch (FileNotFoundException e) {
                                                    e.printStackTrace();
                                            } catch (IOException e) {
                                                    e.printStackTrace();
                                            } catch (Exception e) {
                                                    e.printStackTrace();
                                            }
                                    } catch (Exception e) {
                                            e.printStackTrace();
                                    }
                            } else if (requestCode == 2) {
    
                                    Uri selectedImage = data.getData();
                                    String[] filePath = { MediaStore.Images.Media.DATA };
                                    Cursor c = getContentResolver().query(selectedImage, filePath,
                                                    null, null, null);
                                    c.moveToFirst();
                                    int columnIndex = c.getColumnIndex(filePath[0]);
                                    String picturePath = c.getString(columnIndex);
                                    c.close();
                                    Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
                                    Log.w("path of image from gallery......******************.........",
                                                    picturePath + "");
                                    viewImage.setImageBitmap(thumbnail);
                            }
                    }
            }
    }
 

michelep

Utente Attivo
21 Nov 2013
123
4
0
www.michelepierri.it
Ciao a tutti.

Sto provando ad eseguire l'upload di una fotografia su un server remoto tramite un webservice in asp net.
Il problema in questa classe java è che anche con la fotografia selezionata del form di invio dati, mi viene sempre restituito l'alert "Please select image".

Dove sto sbagliando?
Grazie

Ecco il mio codice:
MainActivity.java

Codice:
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
            ImageView viewImage;
            Button b, upload;
            private Bitmap bitmap;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
    
                    b = (Button) findViewById(R.id.btnSelectPhoto);
                    viewImage = (ImageView) findViewById(R.id.viewImage);
                    upload = (Button) findViewById(R.id.button1);
    
                    b.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                    selectImage();
                            }
                    });
    
                    upload.setOnClickListener(new View.OnClickListener() {
    
                            public void onClick(View v) {
    
                                    if (bitmap == null) {
                                            Toast.makeText(getApplicationContext(),
                                                            "Please select image", Toast.LENGTH_SHORT).show();
                                    } else {
                                            ProgressDialog.show(MainActivity.this, "Uploading"
                                                            + bitmap, "Please wait...", true);
    
                                    }
                            }
                    });
            }
    
            private void selectImage() {
    
                    final CharSequence[] options = { "Take Photo", "Choose from Gallery",
                                    "Cancel" };
    
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("Add Photo!");
                    builder.setItems(options, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int item) {
                                    if (options[item].equals("Take Photo")) {
                                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                                            File f = new File(android.os.Environment
                                                            .getExternalStorageDirectory(), "temp.jpg");
                                            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
                                            startActivityForResult(intent, 1);
                                    } else if (options[item].equals("Choose from Gallery")) {
                                            Intent intent = new Intent(
                                                            Intent.ACTION_PICK,
                                                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                                            startActivityForResult(intent, 2);
    
                                    } else if (options[item].equals("Cancel")) {
                                            dialog.dismiss();
                                    }
                            }
                    });
                    builder.show();
            }
    
            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);
                    if (resultCode == RESULT_OK) {
                            if (requestCode == 1) {
                                    File f = new File(Environment.getExternalStorageDirectory()
                                                    .toString());
                                    for (File temp : f.listFiles()) {
                                            if (temp.getName().equals("temp.jpg")) {
                                                    f = temp;
                                                    break;
                                            }
                                    }
                                    try {
                                            BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
    
                                            bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(),
                                                            bitmapOptions);
    
                                            viewImage.setImageBitmap(bitmap);
    
                                            String path = android.os.Environment
                                                            .getExternalStorageDirectory()
                                                            + File.separator
                                                            + "Phoenix" + File.separator + "default";
                                            f.delete();
                                            OutputStream outFile = null;
                                            File file = new File(path, String.valueOf(System
                                                            .currentTimeMillis()) + ".jpg");
                                            try {
                                                    outFile = new FileOutputStream(file);
                                                    bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
                                                    outFile.flush();
                                                    outFile.close();
                                            } catch (FileNotFoundException e) {
                                                    e.printStackTrace();
                                            } catch (IOException e) {
                                                    e.printStackTrace();
                                            } catch (Exception e) {
                                                    e.printStackTrace();
                                            }
                                    } catch (Exception e) {
                                            e.printStackTrace();
                                    }
                            } else if (requestCode == 2) {
    
                                    Uri selectedImage = data.getData();
                                    String[] filePath = { MediaStore.Images.Media.DATA };
                                    Cursor c = getContentResolver().query(selectedImage, filePath,
                                                    null, null, null);
                                    c.moveToFirst();
                                    int columnIndex = c.getColumnIndex(filePath[0]);
                                    String picturePath = c.getString(columnIndex);
                                    c.close();
                                    Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
                                    Log.w("path of image from gallery......******************.........",
                                                    picturePath + "");
                                    viewImage.setImageBitmap(thumbnail);
                            }
                    }
            }
    }

Ciao,
molto probabilmente sbagli il modo di ritornare la foto scattata. Dovresti fare un debug impostando uno watch nel requestCode e nella variabile bitmap.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Upload immagine con javascript problemi con FormData() Javascript 1
L Upload di un'immagine all'interno di un database usando php PHP 6
jailbait [PHP] Upload immagine e stampa a schermo PHP 0
G PHP upload dati ed immagine PHP 7
C [PHP] Upload immagine in un form con target _blank: non funziona PHP 7
Marcello.Fiore UPLOAD IMMAGINE AJAX Ajax 1
B Upload immagine con ajax post Ajax 5
MarcoGrazia Come si carica un'immagine in upload? PHP 1
L Upload immagine e update dati DB PHP 2
M Rinominare filename immagine prima di fare l'upload PHP 2
xone Rinominare immagine upload PHP 3
IImanuII Modificare immagine in evidenza in upload. WordPress 0
L [php] upload controllo dimensione immagine PHP 8
A Immagine ricaricata dopo il refresh (upload) PHP 2
A Upload immagine PHP 4
A Upload immagine profilo utente PHP 4
F resize di un'immagine dopo l'upload. PHP 0
F [Risolto] upload immagini con la classe di Baol74 con size immagine Classic ASP 15
K [PHP] multi upload immagine da form PHP 60
C ridurre dimensione file immagine prima dell'upload Javascript 0
L Passare ad uno script PHP i dati di un form incluso l'upload di un'immagine Ajax 0
giancadeejay upload immagine profilo utente PHP 3
giancadeejay upload immagine su profilo utente PHP 0
P Risuscito un vecchio script di upload immagine multiplo PHP 10
P [JSP] Upload Immagine Java 0
helpdesk Problema Upload non ridimensiona l'immagine PHP 4
S upload immagine multiple da inserire PHP 8
G inserire watermark su immagine in upload PHP 2
Y problema nell'upload di un'immagine PHP 7
J upload immagine PHP 0
S Problema upload immagine Classic ASP 4
M aiuto upload testo e immagine Classic ASP 1
A asp upload immagine Classic ASP 2
R upload e ridimensionamento immagine non funzionante PHP 0
Z Upload protetto e sicuro PHP 1
L Modifica file upload in ASP Classic ASP 2
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
Cosina Upload multiplo con invio allegati per email PHP 0
Cosina Upload multiplo con archiviazione in cartella PHP 16
P Script upload immagini jQuery 0
L upload image tramite url e cache PHP 10
W Non fa l'upload PHP 0
S Upload file senza doverlo selezionare PHP 2
P Upload foto cover e profilo jQuery 0
G Upload file error Apache 0
R Modifica codice per l'upload di più file PHP 1
S Problemi con modulo upload video php (help!) PHP 0
S [PHP] Upload stesso file PHP 14
max1974 [Javascript] dropzone upload to server Javascript 0

Discussioni simili