I found this bit of code.  Not put it to use yet, but looks good to
go.  The "data" object is the byte[] representing the image.

 PostMethod method;
                try {
                        HttpClient client = new HttpClient();
 
client.getHttpConnectionManager().getParams().setConnectionTimeout(
                                        5000);
                        method = new PostMethod(urlString);

                        Part[] parts = {
                                        new FilePart("videoFile", new
ByteArrayPartSource(
                                                        "videoFile",
data)),
                                        new StringPart("videoName",
filename) };
                        method.setRequestEntity(new
MultipartRequestEntity(parts, method
                                        .getParams()));
                        client.executeMethod(method);
                        response = method.getResponseBodyAsString();
                        method.releaseConnection();
                } catch (Exception ex) {
                        Log.v(TAG, "Exception", ex);
                } finally {
                        method.releaseConnection();
                }

On Apr 29, 3:25 am, Amit <[email protected]> wrote:
> Hi,
>
> I am a newbie to Android development; and I want to upload an image
> (NOT an image file on the device, but a frame from a camera preview)
> to a web-server. I searched around and got a snippet of code that can
> be used to upload a byte array. This is the code:
>
>         public void uploadImage(final byte[] data) {
>                 // spawn off a new thread to do the image uploading
>                 new Thread(new Runnable() {
>
>                         @Override
>                         public void run() {
>                                 // TODO Auto-generated method stub
>                                 Log.d(TAG, "onRun:");
>                                 HttpURLConnection conn = null;
>                                 try {
>                                         serverURL = new URL(URL);
>                                 } catch (MalformedURLException e) {
>                                         // TODO Auto-generated catch block
>                                         Log.e(TAG, "Malformed URL!");
>                                         e.printStackTrace();
>                                 }
>                                 try {
>                                         // open up a connection with the 
> server
>                                         conn = (HttpURLConnection) 
> serverURL.openConnection();
>
>                                         // set up the conection
>                                         conn.setDoInput(true);
>                                         conn.setDoOutput(true);
>                                         conn.setUseCaches(true);
>                                         conn.setRequestMethod("POST");
>                                         conn.setRequestProperty("Connection", 
> "Keep-Alive");
>
>                                         // now transfer the byte-stream
>                                         DataOutputStream ostream = new
> DataOutputStream(conn.getOutputStream());
>                                         ostream.write(data);
>                                         ostream.flush();
>                                         ostream.close();
>
>                                 } catch (IOException e) {
>                                         // TODO Auto-generated catch block
>                                         Log.e(TAG, "No response from 
> server!");
>                                         e.printStackTrace();
>                                 } finally {
>                                         conn.disconnect();
>                                 }
>
>                                 // wait for server response
>                                 try {
>                                         BufferedReader reader = new 
> BufferedReader(
>                                                         new 
> InputStreamReader(conn.getInputStream())
>                                                         );
>                                         String response;
>                                         while ((response = reader.readLine()) 
> != null ) {
>                                                 Log.d("server response: ", 
> response);
>                                         }
>                                         reader.close();
>                                 } catch (IOException e) {
>                                         // TODO Auto-generated catch block
>                                         e.printStackTrace();
>                                 }
>
>                         }
>
>                 }).start();
>         }
>
> First, is this code right, or am I missing something here?
>
> Next, I want to know how can I simultaneously upload image AND
> optional image tags to the server?
> I got to the level that I need to send a multi-part request, but can't
> seem to figure out the specifics. Can someone help me?
>
> Also are there some 'best practices' to follow while doing this (like
> for responsiveness, etc)?
>
> Any help is much appreciated!
>
> Thanks,
> Amit
>
> PS: Although this may be a little out-of-bounds for this forum, but
> I'm also writing the server -- any help/ pointers on how to write it
> to handle this POST request that the client sends? Got to write the
> server in ASP.NET
> Thanks again,
> amit
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to