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. 用VSCode写python的正确姿势

    最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引.用过之后发现它启动快速,插件丰富,下载安装后几乎不用怎么配置就可以直接使用,而且还支持markd ...

  2. hadoop单节点windows 7 环境搭建

    前言 Windows下运行,通常有两种方式:一种是用VM方式安装一个,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处是使用比较方便,安装过程 ...

  3. easyui之datagrid的使用

    http://www.cnblogs.com/ruanmou001/p/3840954.html 一.神马是easyui jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery ...

  4. TEXT宏,TCHAR类型

    TCHAR *ptch = TEXT("This is a const string."); 如果使用UNICODE字符集, 则TEXT("This is a const ...

  5. MyBatis查询传一个参数时报错:There is no getter for property named 'sleevetype' in 'class java.lang.Integer

    用MyBatis进行查询,传入参数只有一个时(非Map)如int,报错 There is no getter for property named 'sleevetype' in 'class jav ...

  6. web漏洞总结

    目录: 1.sql注入获取数据库信息2.sql注入绕过管理后台登录3.反射型xss4.存储型xss5.csrf6.文件上传7.暴力破解8.目录遍历9.权限跨越10.文件包含11.未知漏洞 web漏洞演 ...

  7. Linux下安装php screw

    1.下载地址:http://sourceforge.net/projects/php-screw/ 2. tar zxvf php_screw_1.5.tar.gz cd php_screw_1.5 ...

  8. [PHP]array_map与array_column之间的关系

    ---------------------------------------------------------------------------------------------------- ...

  9. Visual Studio Online Integrations

                                                                                                         ...

  10. JAVA 利用JNI加密class文件/自定义ClassLoader 类

    利用 JNI 对bytecode 加密.不影响java程序员的正常开发.09年的时候写的,现在拿出来晒晒————————————————————————————混淆才是王道,如果混淆再加密就更酷了.. ...