I use post with file to upload a image file to website. i got the error message.Could you give me some suggestion? Thanks
system:android 4.0.3
phone:htc x
error information
E/dalvikvm(11952): Could not find class 'org.apache.http.entity.mime.content.FileBody', referenced from method tw.tcc.tsvs.www.FileUploadPost.FileUploadPostActivity$1.onClick
code
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
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;
private Button.OnClickListener jclove=new OnClickListener(){
public void onClick(View v) {
try {
//file_post
File file = new File("/sdcard/android.jpg");
try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://latest.tsd2497r1.ext.hipaas.hinet.net/";
HttpPost post = new HttpPost(postURL);
FileBody bin = new FileBody(file);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("myFile", bin);
post.setEntity(reqEntity);
HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
Log.i("RESPONSE",EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}
//}
} catch (Exception e) {
e.printStackTrace();
}
}
};
From your code and error I think you forgot to add httpmime-4.0.jar file in your build path.
Example Code:
Look at My answer in this SO question.
upload an image and audio in One request in android
Thanks everyone. I learn more. The below link was most useful for me.
https://groups.google.com/forum/?fromgroups#!topic/android-developers/QQSWZ_sWdgU/discussion
Beside using httpmime.jar,2nd way is copying sources(*.java) into yourproject/src folder... The final directiry structure should be like yourproject/src/org/apache/http/entity/mime/... You should not mix jar libraries and sources files these libraries... Everythihng works fine for me, so just do it carefully.
source code(*.java) you can download from http://hc.apache.org/downloads.cgi
select HttpClient 4.2.1: SOURCE-->4.2.1.zip.