Upload de imagenes

Consultas técnicas sobre programación en Android

Upload de imagenes

Notapor mvasquezd » 09 Ago 2012, 19:28

Hola,

Una consulta, a ver si me pueden guiar que a esta altura ya estoy algo mareado.

Necesito enviar un formulario típico a un Webservice, unos cuantos datos y un archivo adjunto (en este caso una imagen de la sdcard).

de ante mano, muchas gracias.
mvasquezd
 
Mensajes: 2
Registrado: 06 Jul 2012, 16:09

Re: Upload de imagenes

Notapor dasanro » 14 Ago 2012, 19:56

Para hacer el envio de la imagen lo tienes que hacer en un asynctask

Y mas o menos podria ser algo asi (yo lo tengo y me funciona correctamente)

Código: Seleccionar todo
public class MainActivity extends Activity {

   
   private class MyAsyncTask extends AsyncTask<Void, Void, Void>
    {

        @Override
        protected void onPostExecute(Void result) {
           t.setText("POST REALIZADO");
        }

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected Void doInBackground(Void... params) {
           AbstractHttpClient client = new DefaultHttpClient();
         String URL = "http://miservidor/miservlet";
         File file = new File(nf);

         StringBody txt = null;
         try {
            txt = new StringBody(t.getText().toString());
         } catch (UnsupportedEncodingException e1) {
         }
         FileBody im = new FileBody(file);

         HttpPost POST = new HttpPost(URL);

         MultipartEntity reqEntity = new MultipartEntity();
         reqEntity.addPart("texto", txt);
         reqEntity.addPart("imagen", im);
         POST.setEntity(reqEntity);
         try {
            client.execute(POST);
         } catch (Exception e) {
            e.printStackTrace();
         }
            return null;   
        }
    }

   
   private ImageView im;
   private EditText t;
   private String nf;
   private static final int SELECT_IMAGE = 1;

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

      im = (ImageView) findViewById(R.id.imageView1);

      t = (EditText) findViewById(R.id.editText1);

      findViewById(R.id.button1).setOnClickListener(
            new View.OnClickListener() {
               public void onClick(View arg0) {
                  //Intent in = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                  Intent in = new Intent();
                  in.setAction(Intent.ACTION_PICK);
                  in.setType("image/*");
                  startActivityForResult(in, SELECT_IMAGE);
               }
            });

      findViewById(R.id.button2).setOnClickListener(
            new View.OnClickListener() {
               public void onClick(View v) {
                  new MyAsyncTask().execute((Void[])null);
               }
            });

   }

   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (Activity.RESULT_OK == resultCode) {
         if (requestCode == SELECT_IMAGE) {
            Uri uri = data.getData();

            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(uri, filePathColumn,
                  null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            nf = cursor.getString(columnIndex);
            cursor.close();
            Toast.makeText(getApplicationContext(), nf, Toast.LENGTH_LONG)
                  .show();
            Bitmap bm = BitmapUtils.decodeSampledBitmapFromResource(nf,
                  im.getWidth(), im.getHeight());
            im.setImageBitmap(bm);
         }
      }

   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }

}
dasanro
 
Mensajes: 17
Registrado: 12 Dic 2011, 00:20

Re: Upload de imagenes

Notapor victorbahia87 » 18 Mar 2013, 13:44

Hola, como andas?, pudiste hacer el formulario desde android y enviar un archivo adjunto? como hiciste para leer el archivo adjunto en el webservice?,

Gracias!
victorbahia87
 
Mensajes: 1
Registrado: 18 Mar 2013, 13:41


Volver a Consultas Técnicas Programación Android