인사말,안드로이드 : 사진 업로드
내 안드로이드 전화에서 사진을 업로드하는 데 문제가 있습니다.
public class Uploader{
public void upload(){
Log.i("EOH","hi...");
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
Bundle extras = data.getExtras();
Bitmap b = (Bitmap) extras.get("data");
//what do do now with this Bitmap...
//how do I upload it?
}
}
}
그래서 나는 비트 맵 B가 그러나 나는 다음에 무엇을 해야할지하지 않습니다 : 여기에 내가 사진을 선택하라는 메시지를 표시하기 위해 사용하고 코드는?
내가 가지고 POST 요청을 보내기위한 다음 코드를
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("someValA", String.valueOf(lat)));
params.add(new BasicNameValuePair("someValB", String.valueOf(lng)));
new HttpConnection(handler).post("http://myurl.com/upload.php",params);
가 어떻게 여기에 비트 맵 이미지를 연결 할 수 있습니까? 나는 Google을 수년간 검색해 왔으며 좋은 방법을 찾지 못했습니다.
누군가 도와 드릴 수 있기를 바랍니다. 사전에
많은 감사, 내가 치라 샤의 제안을 시도했습니다 확인
.
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
Uri imageUri=data.getData();
List<NameValuePair> params = new ArrayList<NameValuePair>(1);
params.add(new BasicNameValuePair("image", imageUri.getPath()));
post("http://www.myurl.com/ajax/uploadPhoto.php",params);
}
}
(권장) 포스트 기능은 다음과 같습니다 :
public void post(String url, List<NameValuePair> nameValuePairs) {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(url);
try {
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
for(int index=0; index < nameValuePairs.size(); index++) {
if(nameValuePairs.get(index).getName().equalsIgnoreCase("image")) {
// If the key equals to "image", we use FileBody to transfer the data
entity.addPart(nameValuePairs.get(index).getName(), new FileBody(new File (nameValuePairs.get(index).getValue())));
}else{
// Normal string data
entity.addPart(nameValuePairs.get(index).getName(), new StringBody(nameValuePairs.get(index).getValue()));
}
}
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost, localContext);
Log.i("EOH",response.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
그러나 myurl.com/ajax/uploadPhoto.php이 점점 아무것도 여기 내 코드입니다. uploadPhoto.php에서 활동을 기록하기 위해 PHP 로그를 만들었습니다. 아무 것도 나타나지 않습니다. myurl.com/ajax/uploadPhoto.php를 웹 브라우저에 바로 입력하면 잘 기록됩니다.
더 이상의 제안 사항이 있으십니까?
많은 감사,
와 onclick을 호출 http 게시물은 비동기 작업에서 수행되어야합니다. 그렇지 않으면 단지 발생하지 않습니다. 게시 및 데이터 가져 오기와 비슷한 작업을 수행하면서 비동기 작업의 URL에 게시물을 래핑해야했습니다. (http://developer.android.com/reference/android/os/AsyncTask.html) – Tim