圖片文件上傳

[java]        //一些定義的變量  
       private String newName = "image.jpg"; 
private String uploadFile = "/sdcard/apple.jpg"; 
//private String actionUrl = "http://localhost:8080/testCutPic/upload.php";  
//上傳圖片地址,上傳的圖片文件參數名為fileToUpload  
private String actionUrl="http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php"; 
        //一些定義的變量
        private String newName = "image.jpg";
 private String uploadFile = "/sdcard/apple.jpg";
 //private String actionUrl = "http://localhost:8080/testCutPic/upload.php";
 //上傳圖片地址,上傳的圖片文件參數名為fileToUpload
 private String actionUrl="http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php";

 HttpClient請求客戶端方式:

[html]               private void postFile(){ 
    
   HttpClient httpclient = new DefaultHttpClient(); 
   httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 
 
    HttpPost httppost = new HttpPost("http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php"); 
    
    File file = new File(uploadFile); 
//  File file2=new File(uploadFile); 
     
    ContentBody cbFile = new FileBody(file, "image/jpeg"); 
//  ContentBody cbFile2 = new FileBody(file2, "image/jpeg"); 
    MultipartEntity mpEntity = new MultipartEntity(); 
   
    mpEntity.addPart("fileToUpload", cbFile); 
//  mpEntity.addPart("fileToUpload2", cbFile2); 
       //  mpEntity.addPart("字符串參數", new StringBody("user")); 
 
 
    httppost.setEntity(mpEntity); 
     
    Log.d("log", "請求信息: " + httppost.getRequestLine()); 
 //   System.out.println("executing request " + httppost.getRequestLine()); 
    HttpResponse response = null; 
    try { 
        response = httpclient.execute(httppost); 
    } catch (ClientProtocolException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
    } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
    } 
    HttpEntity resEntity = response.getEntity(); 
     
    Log.d("log", "響應信息:"+response.getStatusLine().toString()); 
   // System.out.println(response.getStatusLine()); 
    if (resEntity != null) { 
      try { 
          final String response_str=EntityUtils.toString(resEntity); 
          Log.d("log", response_str); 
    } catch (ParseException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    } 
    if (resEntity != null) { 
      try { 
        resEntity.consumeContent(); 
    } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    } 
 
    httpclient.getConnectionManager().shutdown(); 
   } 
                private void postFile(){
    
     HttpClient httpclient = new DefaultHttpClient();
     httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

      HttpPost httppost = new HttpPost("http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php");
    
      File file = new File(uploadFile);
  //  File file2=new File(uploadFile);
     
      ContentBody cbFile = new FileBody(file, "image/jpeg");
  //  ContentBody cbFile2 = new FileBody(file2, "image/jpeg");
      MultipartEntity mpEntity = new MultipartEntity();
   
      mpEntity.addPart("fileToUpload", cbFile);
  //  mpEntity.addPart("fileToUpload2", cbFile2);
         //  mpEntity.addPart("字符串參數", new StringBody("user"));
  

      httppost.setEntity(mpEntity);
     
      Log.d("log", "請求信息: " + httppost.getRequestLine());
   //   System.out.println("executing request " + httppost.getRequestLine());
      HttpResponse response = null;
   try {
    response = httpclient.execute(httppost);
   } catch (ClientProtocolException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   }
      HttpEntity resEntity = response.getEntity();
     
      Log.d("log", "響應信息:"+response.getStatusLine().toString());
     // System.out.println(response.getStatusLine());
      if (resEntity != null) {
        try {
         final String response_str=EntityUtils.toString(resEntity);
         Log.d("log", response_str);
   } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
      }
      if (resEntity != null) {
        try {
    resEntity.consumeContent();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
      }

      httpclient.getConnectionManager().shutdown();
     }字節流的方式上傳:

[html] private void uploadFile() { 
String end = "\r\n"; 
String twoHyphens = "–"; 
String boundary = "*****"; 
try { 
    URL url = new URL(actionUrl); 
    HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
 
    con.setDoInput(true); 
    con.setDoOutput(true); 
    con.setUseCaches(false); 
 
    con.setRequestMethod("POST"); 
 
    con.setRequestProperty("Connection", "Keep-Alive"); 
    con.setRequestProperty("Charset", "UTF-8"); 
    con.setRequestProperty("Content-Type", 
            "multipart/form-data;boundary=" + boundary); 
 
    DataOutputStream ds = new DataOutputStream(con.getOutputStream()); 
    ds.writeBytes(twoHyphens + boundary + end); 
    ds.writeBytes("Content-Disposition: form-data; " 
            + "name=\"file1\";filename=\"" + newName + "\"" + end); 
    ds.writeBytes(end); 
 
    FileInputStream fStream = new FileInputStream(uploadFile); 
 
    int bufferSize = 1024; 
    byte[] buffer = new byte[bufferSize]; 
 
    int length = -1; 
 
    while ((length = fStream.read(buffer)) != -1) { 
 
        ds.write(buffer, 0, length); 
    } 
    ds.writeBytes(end); 
    ds.writeBytes(twoHyphens + boundary + twoHyphens + end); 
 
    fStream.close(); 
    ds.flush(); 
 
    InputStream is = con.getInputStream(); 
    int ch; 
    StringBuffer b = new StringBuffer(); 
    while ((ch = is.read()) != -1) { 
        b.append((char) ch); 
    } 
 
    showDialog("上傳成功" + b.toString().trim()); 
 
    ds.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
    showDialog("上傳失敗" + e); 

   private void uploadFile() {
  String end = "\r\n";
  String twoHyphens = "–";
  String boundary = "*****";
  try {
   URL url = new URL(actionUrl);
   HttpURLConnection con = (HttpURLConnection) url.openConnection();

   con.setDoInput(true);
   con.setDoOutput(true);
   con.setUseCaches(false);

   con.setRequestMethod("POST");

   con.setRequestProperty("Connection", "Keep-Alive");
   con.setRequestProperty("Charset", "UTF-8");
   con.setRequestProperty("Content-Type",
     "multipart/form-data;boundary=" + boundary);

   DataOutputStream ds = new DataOutputStream(con.getOutputStream());
   ds.writeBytes(twoHyphens + boundary + end);
   ds.writeBytes("Content-Disposition: form-data; "
     + "name=\"file1\";filename=\"" + newName + "\"" + end);
   ds.writeBytes(end);

   FileInputStream fStream = new FileInputStream(uploadFile);

   int bufferSize = 1024;
   byte[] buffer = new byte[bufferSize];

   int length = -1;

   while ((length = fStream.read(buffer)) != -1) {

    ds.write(buffer, 0, length);
   }
   ds.writeBytes(end);
   ds.writeBytes(twoHyphens + boundary + twoHyphens + end);

   fStream.close();
   ds.flush();

   InputStream is = con.getInputStream();
   int ch;
   StringBuffer b = new StringBuffer();
   while ((ch = is.read()) != -1) {
    b.append((char) ch);
   }

   showDialog("上傳成功" + b.toString().trim());

   ds.close();
  } catch (Exception e) {
   e.printStackTrace();
   showDialog("上傳失敗" + e);
  }
 }
 
用到的dialog對話框,用來顯示測試結果:

[html]    private void showDialog(String mess) { 
w AlertDialog.Builder(TestuploadImageActivity.this) 
.setTitle("Message").setMessage(mess) 
.setNegativeButton("確定", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
    } 
}).show(); 

摘自 agods–足跡
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *