调用照相
private void imageClient(){
// // 隐藏title
// this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//
// // 设置全屏
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
fileName = UUID.randomUUID().toString();
try{
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imgFile = new File(Environment.getExternalStorageDirectory(), fileName + ".jpg");
Uri outputFileUri = Uri.fromFile(imgFile);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, 10);
} catch (Exception ex) {
ex.printStackTrace();
Log.e("EP", "" + ex.getMessage());
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
// 父类方法
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case RESULT_OK:
LogUtil.info("on Activity Result");
Bundle extras = data.getExtras();
b = (Bitmap) extras.get("data");
new Thread(new Runnable(){
public void run(){
if (b != null) {
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(android.os.Environment.getExternalStorageDirectory() + "/test.jpg"));
// 压缩图片
b.compress(CompressFormat.JPEG, 75, bos);
bos.flush();
bos.close();
} catch (Exception e) {
Log.e("Exception", "file or compress exception");
e.printStackTrace();
}
}
imgFile = new File(android.os.Environment.getExternalStorageDirectory() + "/" +fileName + ".jpg");
// ImgManager.resize(file, file, 200, "jpg");
// 发送到服务器
if(!HttpUtil.postImg("http://neil.finalist.hk/namex/namex/nclient/upload", "user", "client", imgFile)){
// 发送失败则重发一次
HttpUtil.postImg("http://neil.finalist.hk/namex/namex/nclient/upload", "user", "client", imgFile);
}
}
}).start();
}
}
发送
@SuppressWarnings("deprecation")
public static boolean postImg(String url, String u, String c, File file){
LogUtil.info("" + file.exists());
PostMethod postMethod = new PostMethod(url);
Part[] part = new Part[4];
part[0] = new StringPart("u", u);
part[1] = new StringPart("c", c);
try {
part[2] = new FilePart("Filedata", file);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
Log.e("file exception", ex.getMessage());
}
part[3] = new StringPart("flag", "image");
MultipartRequestEntity mrp = new MultipartRequestEntity(part, postMethod.getParams());
postMethod.setRequestEntity(mrp);
org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();
client.getParams().setContentCharset("utf-8");
try {
client.executeMethod(postMethod);
if("false".equals(postMethod.getRequestEntity().toString())){
return false;
}
} catch (HttpException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}finally {
if (client != null) {
client = null;
}
if (postMethod != null) {
postMethod = null;
}
}
return true;
}
分享到:
相关推荐
在Android客户端,可以通过多种方式发送POST请求来上传数据和图片,例如使用`HttpClient`、`OkHttp`等库。这里我们以`OkHttp`为例,介绍上传字段和图片的一般步骤: 1. **创建OkHttpClient对象**:用于初始化网络...
在Android平台上,开发人员经常需要实现文件上传的功能,例如用户在应用中分享图片或文档到服务器。本篇文章将深入探讨如何使用HttpClient库在Android中执行POST请求上传文件。虽然现在推荐使用Retrofit、OkHttp等...
在Android开发中,HTTPClient是常用的网络通信库,它提供了HTTP协议的支持,允许应用程序通过POST和GET方法向服务器传输数据。本项目中的四个知识点聚焦于HTTPClient的使用,特别是文件上传以及HTTP的基本请求方法。...
对于Android应用,图片加载库如Glide或Picasso提供了更便捷的方式去加载和缓存网络图片。它们不仅简化了代码,还提供了图片处理和优化的功能,比如自动缓存、占位符、加载动画等。 总结起来,这个简单的工程展示了...
接下来,服务器需要将接收到的十六进制数据还原为二进制图片数据。在PHP中,可以使用以下代码: ```php $binaryData = hex2bin($data); // 将十六进制转为二进制 ``` 然后,服务器需要将这个二进制数据保存为图片...
在Android应用开发中,图片选择和上传是一项常见的功能,尤其在社交、电商或者任何需要用户交互的App中。本文将详细解析如何使用Android Studio来实现这个功能,特别关注"android upload image"这一核心标签。 首先...
在Android开发中,图片的上传和下载是常见的功能需求,特别是在社交、电商或者任何涉及到用户交互的应用中。本文将详细讲解如何在Android中实现图片的选取、上传至服务器以及从服务器下载图片,并将其存储到MySQL...
在`Android之GET和POST`中,你可能学习到如何创建请求,设置请求头,以及处理响应数据。 其次,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Android与服务器的数据交换。在`Android...
在IT行业中,数据和图片的上传与下载是网络应用程序的核心功能之一,无论是Android移动应用还是Web应用程序,都需要处理这些操作。下面将详细讲解这个领域的关键知识点。 1. **数据上传下载的基本原理**: - **...
然后,构造一个RequestBody,将图片数据转换成RequestBody,可以选择Base64编码或者直接上传二进制数据。最后,构建一个POST请求,附上请求头(如Content-Type)和RequestBody,发起网络请求。 在上传过程中,考虑...
- 在POST请求体中,创建一个`Part`来表示图片数据。每个Part包含键值对,如"image":图片字节数组。 - 使用`DataOutputStream.writeBytes()`方法将Part写入输出流。 - 记得关闭输出流。 4. **PHP服务器端处理**...
创建一个OkHttpClient实例,然后使用RequestBody封装图片数据,构建一个POST请求,将图片上传至服务器。 2. **图片数据的编码**:图片数据需要转化为适合在网络上传输的格式,通常我们会选择Base64编码或者使用...
注意,你需要设置合适的Content-Type,并且在上传多部分数据(如图片和额外参数)时,需要遵循multipart/form-data格式。 为了处理网络请求的响应,可以使用以下代码: ```java int responseCode = conn....
在Android开发中,上传图片和文字是常见的功能需求,尤其在社交、博客或者电商类应用中,用户常常需要分享自己的照片并配上相应的描述。本文将详细介绍如何在Android中实现这一功能,包括图片的选择、处理、上传,...
5. 发送请求:通过`connection.setRequestMethod("POST")`设置请求方法,`connection.setDoOutput(true)`开启输出流,然后使用`DataOutputStream`将图片数据写入连接。 6. 处理响应:服务器返回的响应可以通过`...
在这个项目中,我们关注的是如何在Android应用中使用XML解析器获取网络数据,结合Fragment框架进行界面展示,并且实现图片的本地缓存。下面将详细介绍这些知识点。 1. XML解析:XML(eXtensible Markup Language)...
在IT行业中,Android和Tomcat之间的文件上传与数据交互是一个常见的需求,特别是在移动应用和服务器端数据处理的场景。在这个过程中,Android作为客户端,通过HTTP协议向运行在服务器上的Tomcat发送请求,实现文件的...
本项目"android获取聚合数据笑话"正是这样一个示例,它展示了如何利用Fastjson和XUtils这两个流行框架从聚合数据API中获取并解析笑话内容。下面我们将深入探讨这个项目涉及的关键知识点。 首先,聚合数据(JuHeData...
OkHttp或Volley都支持Multipart请求,需要创建RequestBody对象来封装图片数据。 4. **RequestBody与RequestBody.create**: - 使用`RequestBody.create`方法,传入图片的二进制数据(如转换为byte数组)和MIME类型...
在Android开发中,有时我们需要将用户的图片数据上传到服务器,以实现例如用户头像更新、照片分享等功能。这个"android HttpURLConnection上传图片demo"提供了一个具体的示例,教我们如何使用HttpURLConnection来...