package com.bruce.testloadimg;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
String url = "http://www.123edu.com/App/head_upload/token/f28414b157a03486719f646593b63e09";
//Content-Type: multipart/form-data
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
String content = uploadBitmap1(url, Bitmap2Bytes(bitmap), "userhead");
Log.w("tag", content);
}
}).start();
}
});
}
public byte[] Bitmap2Bytes(Bitmap bm) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
public String uploadBitmap1(String urlHost, byte[] imageBytes, String key) {
String endString = "\r\n";
String twoHyphen = "--";
String boundary = "*****";
try {
URL url = new URL(urlHost);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
//con.setRequestProperty("content-type", "text/html");
//允许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);
//设置DataOutputStream
DataOutputStream dsDataOutputStream = new DataOutputStream(con.getOutputStream());
dsDataOutputStream.writeBytes(twoHyphen + boundary + endString);
dsDataOutputStream.writeBytes("Content-Disposition:form-data;" + "name=\"" + key + "\";filename=\"" +
"11.jpg\"" + endString);
dsDataOutputStream.writeBytes(endString);
//取得文件的FileInputStream
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";
}
}