private void postImg( String actionUrl, Map< String, String > params, String filePath )
{
HttpURLConnection conn = null;
try
{
String BOUNDARY = "----WebKitFormBoundaryGA8Dp6oSsjLFAQIQ"; //数据分隔线
String MULTIPART_FORM_DATA = "Multipart/form-data";
URL url = new URL(actionUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + ";boundary=" + BOUNDARY);
StringBuilder sb = new StringBuilder();
//上传的表单参数部分,格式请参考文章
/* for (Map.Entry<String, String> entry : params.entrySet()) {//构建表单字段内容
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");
sb.append(entry.getValue());
sb.append("\r\n");
}*/
// System.out.println(sb.toString());
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(sb.toString().getBytes());//发送表单字段数据
byte[] content = readFileImage(filePath);//这函数简单,直接读取文件,不贴出来了!
//上传的文件部分,格式请参考文章
//System.out.println("content:"+content.toString());
StringBuilder split = new StringBuilder();
split.append("--");
split.append(BOUNDARY);
split.append("\r\n");
String filename = filePath.substring( filePath.lastIndexOf('/') + 1 );
split.append("Content-Disposition: form-data;name=\"upload_file\";filename=");
split.append("\"").append(filename).append("\"\r\n");
split.append("Content-Type: image/jpg\r\n\r\n");
System.out.println(split.toString());
outStream.write(split.toString().getBytes());
outStream.write(content, 0, content.length);
outStream.write("\r\n".getBytes());
byte[] end_data = ("--" + BOUNDARY + "--\r\n").getBytes();//数据结束标志
outStream.write(end_data);
outStream.flush();
int result = conn.getResponseCode();
if( result == 200 )
{
Log.i("Test", "success! ");
}else
{
Log.i("Test", "failde! ");
}
}catch( Exception ex )
{
ex.printStackTrace();
}finally
{
if( null != conn )
{
conn.disconnect();
}
}
}
{
HttpURLConnection conn = null;
try
{
String BOUNDARY = "----WebKitFormBoundaryGA8Dp6oSsjLFAQIQ"; //数据分隔线
String MULTIPART_FORM_DATA = "Multipart/form-data";
URL url = new URL(actionUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + ";boundary=" + BOUNDARY);
StringBuilder sb = new StringBuilder();
//上传的表单参数部分,格式请参考文章
/* for (Map.Entry<String, String> entry : params.entrySet()) {//构建表单字段内容
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");
sb.append(entry.getValue());
sb.append("\r\n");
}*/
// System.out.println(sb.toString());
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(sb.toString().getBytes());//发送表单字段数据
byte[] content = readFileImage(filePath);//这函数简单,直接读取文件,不贴出来了!
//上传的文件部分,格式请参考文章
//System.out.println("content:"+content.toString());
StringBuilder split = new StringBuilder();
split.append("--");
split.append(BOUNDARY);
split.append("\r\n");
String filename = filePath.substring( filePath.lastIndexOf('/') + 1 );
split.append("Content-Disposition: form-data;name=\"upload_file\";filename=");
split.append("\"").append(filename).append("\"\r\n");
split.append("Content-Type: image/jpg\r\n\r\n");
System.out.println(split.toString());
outStream.write(split.toString().getBytes());
outStream.write(content, 0, content.length);
outStream.write("\r\n".getBytes());
byte[] end_data = ("--" + BOUNDARY + "--\r\n").getBytes();//数据结束标志
outStream.write(end_data);
outStream.flush();
int result = conn.getResponseCode();
if( result == 200 )
{
Log.i("Test", "success! ");
}else
{
Log.i("Test", "failde! ");
}
}catch( Exception ex )
{
ex.printStackTrace();
}finally
{
if( null != conn )
{
conn.disconnect();
}
}
}