Android 는 오픈 소스 프레임 워 크 를 참조 하여 AsyncHttpClient 를 통 해 파일 업 로드 를 실현 합 니 다.

오픈 소스 프레임 워 크 를 참조 하여 AsyncHttpClient 를 통 해 파일 을 업로드 합 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.절차:
1.권한 추가(네트워크 접근 권한 과 읽 기와 쓰기 권한)
2.업로드 파일 경 로 를 가 져 와 비어 있 는 지 판단
3.비어 있 지 않 으 면 비동기 요청 대상 만 들 기
4.업로드 파일 경로 만 들 기
5.post 요청 을 실행 합 니 다(url 경 로 를 지정 하고 업로드 파 라 메 터 를 봉인 하 며 AsyncHttpResponseHandler 방법 을 새로 만 듭 니 다) 
2.참고 문서 보기 

3.사례 항목 분석
실행 효 과 는 다음 과 같 습 니 다:

다음 그림 과 같이 로 컬 폴 더 에서 그림 을 가 져 올 지 확인 하 십시오.

중점 코드:상세 한 해석 이 있 습 니 다.주석 을 잘 보 세 요.
1.AndroidManifest.xml 에 권한 추가

 <uses-permission Android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
2.레이아웃 파일 activitymain.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:paddingBottom="@dimen/activity_vertical_margin" 
 android:paddingLeft="@dimen/activity_horizontal_margin" 
 android:paddingRight="@dimen/activity_horizontal_margin" 
 android:paddingTop="@dimen/activity_vertical_margin" 
 tools:context=".MainActivity" > 
 
 <TextView 
  android:id="@+id/textView1" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:text="    " /> 
 
 <EditText 
  android:id="@+id/et_upload" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:layout_below="@+id/textView1" 
  android:ems="10" 
  android:text="/storage/sdcard0/1.jpg"> 
   
  <requestFocus /> 
 </EditText> 
 
 <Button 
  android:id="@+id/btn_upload" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_below="@+id/et_upload" 
  android:onClick="upload" 
  android:text="    " /> 
 
</RelativeLayout>
3、MainActivity.java

package com.example.android_upload; 
 
import java.io.File; 
 
import org.apache.http.Header; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 
 
import com.loopj.android.http.AsyncHttpClient; 
import com.loopj.android.http.AsyncHttpResponseHandler; 
import com.loopj.android.http.RequestParams; 
 
public class MainActivity extends Activity { 
 
 private EditText et_file; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  //     
  et_file = (EditText) findViewById(R.id.et_upload); 
 } 
 
 //       
 public void upload(View v) { 
  int id = v.getId(); 
  switch (id) { 
  case R.id.btn_upload: 
   //          
   String path = et_file.getText().toString(); 
   //           
   if (TextUtils.isEmpty(path.trim())) { 
    Toast.makeText(this, "          ", 1).show(); 
   } else { 
    //         
    AsyncHttpClient client = new AsyncHttpClient(); 
    //  url   
    String url = "http://172.16.237.144:8080/Login/UploadServlet"; 
    //          
    RequestParams params = new RequestParams(); 
    //         
    File file = new File(path); 
    try { 
     //     
     params.put("profile_picture", file); 
    } catch (Exception e) { 
     // TODO: handle exception 
     System.out.println("     ----------"); 
    } 
    //  post   
    client.post(url,params, new AsyncHttpResponseHandler() { 
 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, 
       byte[] responseBody) { 
      if (statusCode == 200) { 
       Toast.makeText(getApplicationContext(), "    ", 1) 
         .show(); 
      } 
     } 
 
     @Override 
     public void onFailure(int statusCode, Header[] headers, 
       byte[] responseBody, Throwable error) { 
      error.printStackTrace(); 
     } 
    }); 
 
   } 
   break; 
 
  default: 
   break; 
  } 
 
 } 
 
} 
포인트 코드 는 바로 이 겁 니 다.직접 효 과 를 확인 해 보 세 요!~
오픈 소스 프레임 워 크 자원:http://xiazai.jb51.net/201701/yuanma/AndroidAsyncHttpClient(jb51.net).rar
원본 코드:http://xiazai.jb51.net/201701/yuanma/AsyncHttpClient(jb51.net).rar
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기