android類比post請求上傳檔案

來源:互聯網
上載者:User

這個是查看網上的資料及android sdk 開發範例書上的例子之後做出來的,基本上是粘過來的,只是添加了幾句代碼。下面是代碼:

 

public static String uploadBitmap1(String urlString,byte[] imageBytes){

String endString = "/r/n";

String twoHyphen = "--";

String boundary = "*****";

try {

URL url = new URL(urlString);

final HttpURLConnection con = (HttpURLConnection)url.openConnection();

//允許input、Output,不使用Cache

con.setDoInput(true);

con.setDoOutput(true);

con.setUseCaches(false);

//設定傳送的method=POST

con.setRequestMethod("POST");

//setRequestProperty

con.setRequestProperty("Connection", "Keep-Alive");

con.setRequestProperty("Charset", "UTF-8");

con.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

 

//從主機讀取資料的逾時時間(單位:毫秒) 

con.setReadTimeout(50000);

//設定串連主機的逾時時間(單位:毫秒) 

con.setConnectTimeout(50000);

 

//System.out.println(con.getResponseCode());

//設定DataOutputStream

DataOutputStream dsDataOutputStream = new DataOutputStream(con.getOutputStream());

dsDataOutputStream.writeBytes(twoHyphen + boundary + endString);

dsDataOutputStream.writeBytes("Content-Disposition:form-data;" + "name=/"file1/";filename=/"" +

"11.jpg/"" + endString);

dsDataOutputStream.writeBytes(endString);

 

dsDataOutputStream.write(imageBytes,0,imageBytes.length);

dsDataOutputStream.writeBytes(endString);

dsDataOutputStream.writeBytes(twoHyphen + boundary + twoHyphen + endString);

 

dsDataOutputStream.close();

int cah = con.getResponseCode();

if(cah == 200){

InputStream isInputStream = con.getInputStream();

int ch;

StringBuffer buffer = new StringBuffer();

while((ch = isInputStream.read()) != -1){

buffer.append((char)ch);

}

return buffer.toString();

}else{

return "false";

}

} catch (Exception e) {

e.printStackTrace();

return "false";

}

}

 

 

傳過來的參數中byte[] imageBytes是將圖片或者是要上傳的檔案轉換後得到的byte數組。其他的就不解釋了,查看下面幾個文章就知道了(網上找到的很不錯的文章)。

http://zsnlovewl.javaeye.com/blog/636650

http://student.csdn.net/space.php?uid=46868&do=blog&id=25873

 

再寫一個簡單的Bitmap轉換成Byte數組的代碼:

 

ByteArrayOutputStream os = new ByteArrayOutputStream(); 

bm.compress(CompressFormat.JPEG, 70, os);

byte[] imgBytes = os.toByteArray(); 

bm是Bitmap對象。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.