Autore Topic: Android Eclipse Upload file su server remoto  (Letto 392 volte)

Offline ccmex

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
Android Eclipse Upload file su server remoto
« il: 23 Settembre 2014, 09:52:04 CEST »
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".

Perchè cosa sto sbagliando?
Grazie

MainActivity.java
Codice: [Seleziona]
    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);
                            }
                    }
            }
    }


Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Android Eclipse Upload file su server remoto
« Risposta #1 il: 28 Settembre 2014, 12:59:06 CEST »
0
Senza provare il codice non é facile trovare il problema, se ti da quel messaggio vuol dire che bitmap é null, perció o sbagli a ritornare il risultato dall'altra activity o hai una eccezione nel logcat...