package com.sdnu.jimbo.qiniu; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.InputStreamReader; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONObject; import com.qiniu.android.http.ResponseInfo; import com.qiniu.android.storage.UpCompletionHandler; import com.qiniu.android.storage.UploadManager; import android.os.Bundle; import android.util.Base64; import android.util.Log; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; /** * @author Jimbo * * 1. 导入两个jar包 -- qiniu-android-sdk-VERSION.jar * android-async-http-VERSION.jar//这个jar是android一个开源的 * //网络请求的框架 * 2. 对你的上传的图片进行一定的处理 比如转换成byte数组 一般转换成base64比较好 * 3. 获得uoLoadToken * 4. new一个UploadManager,调用put方法,上传资源 * 5. 判断是否上传成功 //还可以定义其他的一些更复杂的动作 比如断点续传什么的 */ public class MainActivity extends Activity { String url = "";//服务器生成upLoadToken的URL @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String uoLoadToken = getUploadToken();//获取upLoadToken byte[] result = getBaseEcode();//获取图片的Base64编码 UploadManager uploadManager = new UploadManager();//根据七牛提供的api uploadManager.put(result, uoLoadToken, null, new UpCompletionHandler() { @Override public void complete(String arg0, ResponseInfo arg1, JSONObject arg2) { // TODO Auto-generated method stub Log.i("qiniu", arg1.toString()); } }, null); } private byte[] getBaseEcode() { Drawable myDrawable = this.getResources().getDrawable (R.drawable.likeadog); BitmapDrawable bDrawable = (BitmapDrawable) myDrawable; Bitmap myBitmap = bDrawable.getBitmap(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); myBitmap.compress(CompressFormat.JPEG, 100, outputStream); byte[] b = outputStream.toByteArray(); byte[] result = Base64.encode(b, Base64.DEFAULT); return result; } private String getUploadToken() { HttpClient client = new DefaultHttpClient(); StringBuilder builder = new StringBuilder(); HttpGet myget = new HttpGet(url); try { HttpResponse response = client.execute(myget); BufferedReader reader = new BufferedReader(new InputStreamReader( response.getEntity().getContent())); for (String s = reader.readLine(); s != null; s = reader.readLine()) { builder.append(s); } return builder.toString(); } catch (Exception e) { Log.i("url response", "false"); e.printStackTrace(); return null; } } }
//源码下载 链接:http://pan.baidu.com/s/1c0gzpkc 密码:xwdf
时间: 2024-12-20 19:27:18