It's done :)

On 19 jan, 13:56, arnouf <[email protected]> wrote:
> Hi all,
>
> I used this method until now. But I would like to light my application
> on device - without apache libraries - to use the code present in this
> pagehttp://getablogger.blogspot.com/2008/01/android-how-to-post-file-to-p...
>
> It doesn't work...Could you help me?
>
> For information I would like to send an xml file (so text) and not a
> binary.
>
> Regards
>
> On Dec 19 2008, 8:20 pm, octagon <[email protected]> wrote:
>
> > Sorry, I didn't see your question! In case anyone has the same
> > problem, the answer is yes. I am using eclipse. I first imported the
> > jar files into my project so that the whole thing is all in one place.
> > I put them in res/assets/dependencies.
> > Then do:
>
> > 1. main menu Project --> Properties
> > 2. select Java Build Path from left pane
> > 3. go to Libraries tab
> > 4. click Add JARs
>
> > hope it helps someone out.
>
> > On Oct 23, 4:45 pm, "De San Nicolas Jean Philippe" <[email protected]>
> > wrote:
>
> > > hello
>
> > > just a question (for the moment -:))
>
> > > you set the dependencies in your classpath in your Android project?
>
> > > thank's
>
> > > 2008/10/21 octagon <[email protected]>
>
> > > > This is a way for android to POST a file upload to a php script. I had
> > > > a bit of trouble figuring out the ins and outs of the http client
> > > > situation, but this is what works for me (hope someone finds it
> > > > helpful):
>
> > > > Notes:
>
> > > > Expect/continue handshaking needed to be disabled to avoid getting 417
> > > > errors from lighttpd. Doesn't work without an sdcard yet, as there is
> > > > no Content-Length header associated with uploading an OutputStream as
> > > > opposed to a File object, and writing to files is only allowed on the
> > > > sdcard (as far as I know, please correct me if there is a way to do
> > > > this).
>
> > > > Dependencies:
>
> > > > apache-mime4j-0.5.jar
> > > > log4j-zeroconf.jar
> > > > httpmime-4.0-beta1.jar
>
> > > > upload.php:
>
> > > > <form enctype="multipart/form-data" action="upload.php" method="POST">
> > > > <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
> > > > Choose a file to upload: <input name="uploadedfile" type="file" /><br /
>
> > > > <input type="submit" value="Upload File" />
> > > > </form>
> > > > <?php
> > > >  $to_file = "tmp/" . basename($_FILES['uploadedfile']['name']);
> > > >  $from_file = $_FILES['uploadedfile']['tmp_name'];
>
> > > >  if (move_uploaded_file($from_file, $to_file)) {
> > > >    echo "Successful upload";
> > > > ?>
> > > >  <a href="<?php echo $to_file;?>"><?php echo $to_file;?></a>
> > > > <?php
> > > >  } else {
> > > >    echo "Unsuccessful upload";
> > > >  }
> > > > ?>
>
> > > > DemoActivity.java:
>
> > > > import android.app.Activity;
> > > > import android.os.Bundle;
> > > > import android.util.Log;
> > > > import android.view.View;
> > > > import android.view.View.OnClickListener;
> > > > import android.widget.Button;
> > > > import android.widget.TextView;
>
> > > > import org.apache.http.client.ClientProtocolException;
> > > > import org.apache.http.client.HttpClient;
> > > > import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
> > > > import org.apache.http.client.methods.HttpPost;
> > > > import org.apache.http.client.methods.HttpUriRequest;
> > > > import org.apache.http.entity.mime.MultipartEntity;
> > > > import org.apache.http.entity.mime.content.FileBody;
> > > > import org.apache.http.impl.client.DefaultHttpClient;
>
> > > > import java.io.BufferedReader;
> > > > import java.io.File;
> > > > import java.io.FileReader;
> > > > import java.io.IOException;
> > > > import java.io.PrintWriter;
> > > > import java.util.Date;
>
> > > > public class DemoActivity extends Activity {
>
> > > >  /** Called when the activity is first created. */
> > > >    @Override
> > > >    public void onCreate(Bundle savedInstanceState) {
> > > >        super.onCreate(savedInstanceState);
> > > >        setContentView(R.layout.main);
>
> > > >        /*
> > > >         * Make a simple view with a button and a bit of text. Click
> > > > the button to upload the file to the
> > > >         * server. The file will be saved to tmp/test.txt (relative to
> > > > your php script) and it should contain
> > > >         * the current time and date.
> > > >         */
> > > >        final TextView tmp = (TextView) findViewById(R.id.textView1);
> > > >        tmp.setText("Hi! Click the button!");
>
> > > >        Button b = (Button) findViewById(R.id.button1);
> > > >        b.setOnClickListener(new OnClickListener() {
> > > >                public void onClick(View v) {
> > > >                        File f = new File("/sdcard/test.txt");
> > > >                        try {
> > > >                                        f.createNewFile();
> > > >                                        Date d = new Date();
> > > >                                        PrintWriter writer = new
> > > > PrintWriter(f);
> > > >                                        writer.println(d.toString());
> > > >                                        writer.close();
>
> > > >                                        HttpClient client = new
> > > > DefaultHttpClient();
> > > >                                        httpPostFileUpload(client,
> > > > "/sdcard/test.txt", "http://
> > > > ubergibson.com/~micha/work/oculi/upload.php<http://ubergibson.com/%7Emicha/work/oculi/upload.php>",
> > > > "uploadedfile");
> > > >                        } catch (Exception e) {
> > > >                                        // TODO Auto-generated catch 
> > > > block
> > > >                                        e.printStackTrace();
> > > >                                }
> > > >                }
> > > >        });
> > > >    }
>
> > > >    /**
> > > >     * Upload a file using a POST request.
> > > >     *
> > > >     * @param client the HTTP client object
> > > >     * @param filePath local file location
> > > >     * @param uploadUri URI to POST to
> > > >     * @param inputNameAttr the name attribute of the file input
> > > > element in
> > > >     * the html form
> > > >     * @throws IOException
> > > >     * @throws ClientProtocolException
> > > >     */
> > > >    public void httpPostFileUpload(
> > > >                HttpClient client,
> > > >                String filePath,
> > > >                String uploadUri,
> > > >                String inputNameAttr) throws ClientProtocolException,
> > > > IOException {
>
> > > >        HttpUriRequest  request         = new HttpPost(uploadUri);
> > > >        MultipartEntity form            = new MultipartEntity();
>
> > > >        // disable expect-continue handshake (lighttpd doesn't support
> > > > it)
> > > >        client.getParams().setBooleanParameter(
> > > >                        "http.protocol.expect-continue", false);
>
> > > >        form.addPart(inputNameAttr, new FileBody(new File(filePath)));
>
> > > >                ((HttpEntityEnclosingRequestBase) 
> > > > request).setEntity(form);
>
> > > >                try {
> > > >                        client.execute(request);
> > > >                } catch (ClientProtocolException e) {
> > > >                        throw e;
> > > >                } catch (IOException ee) {
> > > >                        throw ee;
> > > >                }
> > > >    }
> > > > }
--~--~---------~--~----~------------~-------~--~----~
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