一般来说,目前在手机端上传图片,方法挺多的,不过常用的就是一个文件流,另一个是二进制转base64的字符流,下面分享一下方法
网络上都是千篇一律的写法,对于上传过程中失败的问题也很少提及,上传失败的bug,主要的原因当然是编码字符的问题了,一般网上都没有介绍,记得要将base64的字符串 转化一下为utf-8,要不然会导致上传失败
public static String httpPostBase64(byte[] data, String url,String uid,String blog) {
String str=null;
try {
HttpPost httpRequest = new HttpPost(url);
/*
*
* NameValuePair实现请求参数的封装
*/
List params = new LinkedList();
params.add(new BasicNameValuePair("uid", uid));
params.add(new BasicNameValuePair("blog", blog));
if(data!=null){
String data1 = Base64.encodeToString(data, 0, data.length,Base64.DEFAULT);
params.add(new BasicNameValuePair("img",URLEncoder.encode(data1,"UTF-8")));
}
/* 添加请求参数到请求对象 */
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
/* 发送请求并等待响应 */
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() != 200) {
Log.d("Code", httpResponse.getStatusLine().toString());
return str;
}else{
HttpEntity httpEntity=httpResponse.getEntity();
str = EntityUtils.toString(httpEntity,"UTF-8");
System.out.println("-------------------"+str);
}
} catch (Exception e) {
for (StackTraceElement s : e.getStackTrace())
Log.d("Exception", s.toString());
Log.d("Exception", e.getLocalizedMessage());
return str;
}
return str;
}
分享到:
相关推荐
在Android开发中,Base64是一种常见的数据编码方式,它将二进制数据转换为可打印的ASCII字符串,便于在网络传输、存储或者显示时使用。本文将深入探讨如何使用Android的Base64库来对图片进行编码和解码。 ### 1. ...
本示例代码是针对Android 6.0及以上版本设计的,它演示了如何动态请求权限,调用图库或相机获取图片,然后将图片路径转化为Bitmap,进一步将Bitmap转换为Base64字符串以便上传至服务器。 首先,我们需要检查设备的...
描述中提到的Android客户端上传Base64编码的图片,可能是因为Android应用通常将图片数据转换为字符串形式上传,以避免网络传输中二进制数据的问题。然而,某些情况下,这些Base64编码在服务器端可能无法正确解码,这...
6. **文件转Base64**:录制的视频文件转换为Base64字符串,可以使用Java的`java.util.Base64`工具类。首先读取文件的字节流,然后用`Base64.getEncoder().encodeToString()`方法进行编码。 ```java byte[] ...
标题"Base64图片上传,Android图片上传的利器"指出了Base64编码在Android图片上传中的重要性。Base64编码可以将图片转换成字符串形式,这种字符串可以在网络请求中作为文本内容传递,避免了因二进制数据导致的传输...
在小程序中,图片转Base64的需求可能源于以下场景: 1. 图片预览:在某些情况下,Base64编码的图片可以避免网络请求,直接在本地显示。 2. 上传服务器:将图片转换为Base64,可以直接作为字符串发送到服务器,简化...
这种方式适合在网络上传输,因为Base64编码后的字符串包含的字符都是ASCII可打印字符。 - PNG/JPEG编码:Bitmap可以被直接保存为PNG或JPEG格式的字节数组,再转换为String。这种方式生成的字符串通常较短,但不可读...
Android 通过Base64上传图片到服务器 之前做上传图片是采用HttpServlet上传,不过用了一下Base64上传图片后,感觉比HttpServlet方便很多,大家也可以跟着尝试一下。 前台图片处理:(传Bitmap对象即可) /** * ...
在Android开发中,如果需要通过HTTP客户端(如HttpClient)将图片上传到服务器,由于HTTP协议本身只支持ASCII字符,不能直接传输二进制数据,因此通常会先将图片数据转化为Base64字符串,再以文本形式发送,服务器端...
本话题主要聚焦于一个由Delphi编写的ActiveX插件,其核心功能是从剪切板中提取图片并转换为Base64String编码的字符串,以便更方便地在网络应用中传输和存储。 首先,我们来理解Delphi。Delphi是一款强大的Object ...
在这个例子中,`Base64.encode()`方法用于将图片字节数组编码为Base64字符串。 3. **Web Service调用**:客户端使用KSOAP2库来调用Web Service接口。KSOAP2是一个轻量级的库,用于在Android平台上执行SOAP请求。...
对于接收图片的接口,通常定义一个POST方法,接受一个字符串参数,这个参数就是Android上传的Base64编码的图片数据。接口处理完成后,返回一个状态码或者响应消息,告诉客户端操作是否成功。 6. **安全与性能优化**...
综上所述,Android上传图片到Spring MVC服务器涉及多个技术环节,包括Android图像处理、网络请求、Base64编码、服务器端接收和存储等。实际开发中,需要根据具体需求进行调整和优化,确保上传过程的稳定性和效率。在...
在android向C# 后台发送图片的时候,把图片转成字符串发送的时候出现 base-64 字符数组的无效长度 错误应该在传递参数前,使用Replace(“+”, “+”),后台接收后用Replace(“+”, “+”),这样一替换,问题就解决了...
在Android开发中,图像处理是一项常见的任务,而Base64编码是将图像数据转换为文本字符串的一种方法。这种编码方式可以方便地在网络上传输图像,因为HTTP协议只能传输文本,不能直接传输二进制数据。在本文中,我们...
在阿里云OSS的文件上传过程中,Base64编码可能用于将文件内容或特定的请求参数转化为字符串形式,便于在网络中传输。 2. **crypto.js**: 这个文件通常包含了加密算法的实现,如哈希函数、对称加密、非对称加密等...
在这个特定的Android应用程序"Base-64-Encode-Decode"中,用户可以轻松地对字符串进行Base64编码和解码。以下是关于Base64编码和该Android应用开发的相关知识点: 1. **Base64编码原理**: - Base64编码是基于64个...
可以使用Android提供的Bitmap类和相关方法来调整图片尺寸,然后使用Base64.encodeToString()方法将其转换为字符串。 3. **网络权限**: Android应用需要在AndroidManifest.xml文件中添加相应的网络权限,如 `...
综上所述,Android上传图片至网络端是一个涉及多个技术点的过程,需要综合运用网络请求库、数据编码技术、多线程处理、错误处理机制以及用户体验设计等知识。理解并熟练掌握这些技能,对于开发高效、稳定的Android...