Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public String postFile(String fileName) throws Exception {
- fileName = "/mnt/sdcard/DCIM/100MEDIA/IMAG0309.jpg";
- HttpClient client = new DefaultHttpClient();
- HttpPost post = new HttpPost("http://www.mywebsite.com/upload_file.php");
- MultipartEntityBuilder builder = MultipartEntityBuilder.create();
- builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
- final File file = new File(fileName);
- FileBody fb = new FileBody(file);
- builder.addPart("file",fb);
- String userid = session_userid;
- builder.addTextBody("userID", userid);
- final HttpEntity yourEntity = builder.build();
- class ProgressiveEntity implements HttpEntity {
- @Override
- public void consumeContent() throws IOException {
- yourEntity.consumeContent();
- }
- @Override
- public InputStream getContent() throws IOException,
- IllegalStateException {
- return yourEntity.getContent();
- }
- @Override
- public Header getContentEncoding() {
- return yourEntity.getContentEncoding();
- }
- @Override
- public long getContentLength() {
- return yourEntity.getContentLength();
- }
- @Override
- public Header getContentType() {
- return yourEntity.getContentType();
- }
- @Override
- public boolean isChunked() {
- return yourEntity.isChunked();
- }
- @Override
- public boolean isRepeatable() {
- return yourEntity.isRepeatable();
- }
- @Override
- public boolean isStreaming() {
- return yourEntity.isStreaming();
- } // CONSIDER put a _real_ delegator into here!
- @Override
- public void writeTo(OutputStream outstream) throws IOException {
- class ProxyOutputStream extends FilterOutputStream {
- public ProxyOutputStream(OutputStream proxy) {
- super(proxy);
- }
- public void write(int idx) throws IOException {
- out.write(idx);
- }
- public void write(byte[] bts) throws IOException {
- out.write(bts);
- }
- public void write(byte[] bts, int st, int end) throws IOException {
- out.write(bts, st, end);
- }
- public void flush() throws IOException {
- out.flush();
- }
- public void close() throws IOException {
- out.close();
- }
- }
- class ProgressiveOutputStream extends ProxyOutputStream {
- int totalSent;
- public ProgressiveOutputStream(OutputStream proxy) {
- super(proxy);
- }
- public void write(byte[] bts, int st, int end) throws IOException {
- // FIXME Put your progress bar stuff here!
- out.write(bts, st, end);
- }
- }
- yourEntity.writeTo(new ProgressiveOutputStream(outstream));
- }
- };
- ProgressiveEntity myEntity = new ProgressiveEntity();
- post.setEntity(myEntity);
- HttpResponse response = client.execute(post);
- return getContent(response);
- }
- @Override
- protected String doInBackground(HttpResponse... arg0)
- {
- String fileName = "/mnt/sdcard/DCIM/100MEDIA/IMAG0309.jpg";
- HttpClient client = new DefaultHttpClient();
- HttpPost post = new HttpPost("http://www.mywebsite.com/upload_file.php");
- MultipartEntityBuilder builder = MultipartEntityBuilder.create();
- builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
- final File file = new File(fileName);
- FileBody fb = new FileBody(file);
- builder.addPart("file",fb);
- String userid = session_userid;
- builder.addTextBody("userID", userid);
- final HttpEntity yourEntity = builder.build();
- class ProgressiveEntity implements HttpEntity {
- @Override
- public void consumeContent() throws IOException {
- yourEntity.consumeContent();
- }
- @Override
- public InputStream getContent() throws IOException,
- IllegalStateException {
- return yourEntity.getContent();
- }
- @Override
- public Header getContentEncoding() {
- return yourEntity.getContentEncoding();
- }
- @Override
- public long getContentLength() {
- return yourEntity.getContentLength();
- }
- @Override
- public Header getContentType() {
- return yourEntity.getContentType();
- }
- @Override
- public boolean isChunked() {
- return yourEntity.isChunked();
- }
- @Override
- public boolean isRepeatable() {
- return yourEntity.isRepeatable();
- }
- @Override
- public boolean isStreaming() {
- return yourEntity.isStreaming();
- } // CONSIDER put a _real_ delegator into here!
- @Override
- public void writeTo(OutputStream outstream) throws IOException {
- class ProxyOutputStream extends FilterOutputStream {
- public ProxyOutputStream(OutputStream proxy) {
- super(proxy);
- }
- public void write(int idx) throws IOException {
- out.write(idx);
- }
- public void write(byte[] bts) throws IOException {
- out.write(bts);
- }
- public void write(byte[] bts, int st, int end) throws IOException {
- out.write(bts, st, end);
- }
- public void flush() throws IOException {
- out.flush();
- }
- public void close() throws IOException {
- out.close();
- }
- }
- class ProgressiveOutputStream extends ProxyOutputStream {
- public ProgressiveOutputStream(OutputStream proxy) {
- super(proxy);
- int totalSent = 0;
- }
- public void write(byte[] bts, int st, int end) throws IOException {
- // FIXME Put your progress bar stuff here!
- //what's totalSize?
- publishProgress((int) ((end / (float) totalSize) * 100));
- out.write(bts, st, end);
- }
- }
- yourEntity.writeTo(new ProgressiveOutputStream(outstream));
- }
- };
- ProgressiveEntity myEntity = new ProgressiveEntity();
- post.setEntity(myEntity);
- HttpResponse response = client.execute(post);
- return getContent(response);
- //Here it says I should put this into a try catch but then I get an error on
- // the doInBackground line saying it needs to return a string
- }
- protected void onProgressUpdate(Integer... progress) {
- pd.setProgress((int) (progress[0]));
- }
- @SuppressWarnings("deprecation")
- @Override
- protected void onPostExecute(String file_url) {
- pd.dismiss();
- connection.disconnect();
- Toast.makeText(getApplicationContext(), "Ready.", Toast.LENGTH_LONG).show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement