package com.sound.chat;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.net.HttpURLConnection;
import java.net.MalformedURLException;
//import java.net.URL;
//import java.util.UUID;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;

@SuppressWarnings("deprecation")
public class UploadUtil {
	private static final String TAG = "UploadUtil";
	//private static final int TIME_OUT = 10 * 1000; // 超时时间
	//private static final String CHARSET = "utf-8"; // 设置编码
	
	@SuppressWarnings("resource")
	public static String uploadFile(File file, String RequestURL) {
		String result = null;
		HttpClient client = null;
		HttpResponse response = null;
		HttpEntity entity = null;
//		String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成
//		String CONTENT_TYPE = "multipart/form-data"; // 内容类型
		try {
//			URL url = new URL(RequestURL);
//			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//			conn.setReadTimeout(TIME_OUT);
//			conn.setConnectTimeout(TIME_OUT);
//			conn.setDoInput(true); // 允许输入流
//			conn.setDoOutput(true); // 允许输出流
//			conn.setUseCaches(false); // 不允许使用缓存
//			conn.setRequestMethod("POST"); // 请求方式
//			conn.setRequestProperty("Charset", CHARSET); // 设置编码
//			conn.setRequestProperty("connection", "keep-alive");
//			conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
			if (file != null) {
				/**
				 * 当文件不为空，把文件包装并且上传
				 */
				client= new DefaultHttpClient();
				HttpPost post = new HttpPost(RequestURL);
				MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
				multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
				multipartEntity.addPart("img", new FileBody(file));
				multipartEntity.addTextBody("filename", file.getName());
				post.setEntity(multipartEntity.build());
				response = client.execute(post);
				entity = response.getEntity();
				if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
					String line = "";
					StringBuilder total = new StringBuilder();
					BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
					while ((line = rd.readLine()) != null) {
						total.append(line);
					}
					JSONObject backObj = new JSONObject(total.toString());
					result=backObj.getString("imgurl");
					Log.d(TAG, "上传结果返回" + result);
				}
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JSONException e) {
			e.printStackTrace();
		}finally{
			try {
				if(entity != null){
					entity.consumeContent();
					entity = null;
				}
				if(response != null) response = null;
				if(client!=null){
					client.getConnectionManager().shutdown();
					client = null;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return result;
	}
}