package com.jingle.getlocal;

 import java.io.ByteArrayOutputStream;

 import java.io.InputStream;

 import org.apache.http.Header;

 import sun.misc.BASE64Encoder;

 import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams; import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView; public class MainActivity extends Activity {
private String UPLOAD_URL = "http://192.168.1.101:8080/Login//servlet/UploadImg"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initImg();
initBtnUploadImg(); } private void initBtnUploadImg() {
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() { public void onClick(View v) {
uploadImg();
}
});
} private void uploadImg() {
AsyncHttpClient client = new AsyncHttpClient();
client.setTimeout(3000);
RequestParams params = new RequestParams();
//获取Bitmap对象
Bitmap bmp = getImg("orca.jpg");
//获取字节数组输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//压缩Bitmap对象到字节数组输出流
bmp.compress(Bitmap.CompressFormat.JPEG, 90, baos);
//将字节数组输出流转为字节数组
byte[] ba = baos.toByteArray();
//将字节数组编码成字符串
String str = new BASE64Encoder().encode(ba);
params.put("img", str); client.post(UPLOAD_URL, params, new AsyncHttpResponseHandler() {
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
Log.i("ace", "post ok..");
} public void onFailure(int arg0, Header[] arg1, byte[] arg2,
Throwable arg3) {
arg3.printStackTrace();
}
}); } private void initImg() {
ImageView img = (ImageView) findViewById(R.id.img);
img.setImageBitmap(getImg("orca.jpg"));//assets目录下文件名
} //获取图片的Bitmap对象
private Bitmap getImg(String file) {
Bitmap bmp = null;
//获取AssetsMng对象
AssetManager am = getResources().getAssets();
try {
//打开文件,返回输入流
InputStream is = am.open(file);
//Bitmap工厂解码输入流,得到bmp对象
bmp = BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return bmp;
} }

服务器端:

 package action;

 import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import sun.misc.BASE64Decoder; public class UploadImg extends HttpServlet { private static final long serialVersionUID = -8236824851962797021L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { System.out.println("do post..");
String imgStr = request.getParameter("img");
//将字符串解码为字节数组
byte[] imgByte = new BASE64Decoder().decodeBuffer(imgStr);
//新建文件输出流
OutputStream os = new FileOutputStream("E:\\up.jpg");
//输出流写入字节数组
os.write(imgByte);
os.close(); PrintWriter out = response.getWriter();
out.flush();
out.close();
} }

获取Assets目录下的图片显示并上传的更多相关文章

  1. 获取Assets目录下的图片并显示

    package com.jingle.getlocal; import java.io.InputStream; import android.app.Activity; import android ...

  2. Android复制assets目录下的图片到内存

    转自:http://www.chenwg.com/android/android%E5%A4%8D%E5%88%B6assets%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84 ...

  3. 安卓获取Assets目录下的资源

    获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 ! ...

  4. android中如何获取指定目录下的图片

    需要对指定目录的图片文件进行列表,借鉴了网上的方法,发现列表出来是所有的文件,这样用起来很不方便,在这里也没找到解决的办法,经过自己的进一步研究终于搞定,发上来给有用的同学.用下面这种方式能实现查询实 ...

  5. 如何获取drawable目录下的图片绝对路径

    Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + r.getResourcePackage ...

  6. 关于 div 的 contenteditable 使用,placeholder 和 复制图片显示并上传,按住 enter+ctrl 内容换行

    当使用文本编辑的时候,首先会使用 textarea ,但是,这个里面不能加入其它标签,也就是不能富文本化. 于是可以使用 contenteditable 就是给 div 加上该属性.就变得丰富起来.使 ...

  7. Android从assets目录下读取文件相关

    有一个需求是app的帮助文档是word格式,ios可以直接用webview加载word显示,Android不行.而美工不配合转换成图片,前端没时间把word写成html 没办法,自己搞. 步骤: 1. ...

  8. Android开发之assets目录下资源使用总结

    预前知识: Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID,所以访问 ...

  9. c# 获取指定目录下的所有文件并显示在网页上

    参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...

随机推荐

  1. Weka算法Classifier-tree-J48源代码分析(一个)基本数据结构和算法

    大约一年,我没有照顾的博客,再次拿起笔不知从何写上,想来想去手从最近使用Weka要正确书写. Weka为一个Java基础上的机器学习工具.上手简单,并提供图形化界面.提供如分类.聚类.频繁项挖掘等工具 ...

  2. 修改MYSQL 表中的字段属性

    1.登录数据库 >mysql -u root -p 数据库名称 2.查询所有数据表 >show tables; 3.查询表的字段信息 >desc 表名称; 4.1.修改某个表的字段类 ...

  3. 锋利的jQuery-7--query ui效果库--拖动排序插件sortable

    一个简单的拖动排序效果,具体请参看jQuery ui官网demo. jquery ui :http://jqueryui.com/ sortable例子:http://jqueryui.com/sor ...

  4. C语言绘制余弦函数图象

    #include"stdio.h" #include"math.h" void main() { double y; int x,m; for(y=1;y> ...

  5. SqlServer Link 链接服务器的使用

    --创建linked exec sp_addlinkedserver 'a','','SQLNCLI','your ipaddress' --登陆linked exec sp_addlinkedsrv ...

  6. 让VisualVM+BTrace进入unsafe mode

    让VisualVM+BTrace进入unsafe mode http://kenai.com/projects/btrace/pages/UserGuide BTrace很强大,但有很多安全限制,比如 ...

  7. [Angularjs]ng-switch用法

    用法描述 ng-switch根据表达式的值显示或这隐藏对应部分.类似c#或者其他预览里面的switch用法.可以慢慢体会. 说道ng-switch就要说到子元素该怎么根据当前值进行变化.子元素可以通过 ...

  8. ASP.NET WebForm中用async/await实现异步出人意料的简单

    1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...

  9. linux查看内核版本、系统版本、系统位数(32or64)

     linux查看内核版本.系统版本.系统位数(32or64) 2011-05-01 22:05:12 标签:linux 内核版本 休闲 系统版本 系统位数 1. 查看内核版本命令: 1) [root@ ...

  10. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...