- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用这段代码,但遇到了一些内存问题:
// Get the image from the sdcard
Bitmap bm = BitmapFactory.decodeFile("/sdcard/myimage.jpg");
// turn image into byte array output stream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 'compress' the jpeg
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
// get byte[] array of the image
byte[] byteArray = baos.toByteArray();
// turn image into base64 string
String encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
// and base64 string to 'params' value pair
params.add(new BasicNameValuePair("userfile", encodedImage));
try {
HttpPost request = new HttpPost();
String urlString = "http://www.example.com";
request.setURI(new URI(urlString));
if(params != null) {
request.setEntity(new UrlEncodedFormEntity(params));
HttpClient client = new DefaultHttpClient();
client.execute(request);
} // end if
} // end try
有人建议我应该使用 Base64OutputStream
而不是 Base64.encodeToString
,但是我没有成功使用 Base64OutputStream
输出一个我可以上传到服务器的字符串。任何在图像上使用 Base64OutputStream
的示例都会有很大帮助。
编辑
要使答案有效,您需要将两个文件添加到您的 Android 项目:apache-mime4j-dom-0.7.2.jar 和 httpmime-4.1.3.jar;
您可以从 http://james.apache.org/download.cgi#Apache_Mime4J 下载 apache-mime4j-dom-0.7.2.jar - 下载二进制文件,解压缩,然后找到 apache-mime4j-dom-0.7.2.jar 文件。
然后转到http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.httpcomponents/httpmime/4.1.3并下载httpmime-4.1.3.jar
然后将这两个文件拖到 Eclipse 中的项目中。然后在 Eclipse 中,选择项目 > 属性。选择 Properties Pop-up,选择 Java Build Path。单击“库”选项卡(查找源 | 项目 | 库 | 订购和导出)。点击“Add Jars”,选择apache-mime4j-dom-0.7.2.jar和httpmime-4.1.3.jar;然后单击“订购和导出”选项卡。检查apache-mime4j-dom-0.7.2.jar和httpmime-4.1.3.jar;然后关闭该弹出窗口并从 Eclipse 菜单中选择 Project > Clean。
最佳答案
如果可能,您不应该对您的文件进行 base64 编码并在 URL 中发送它们,而应该使用 MultiPart 文件上传:
HttpPost post = new HttpPost(URL);
HttpClient client = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
MultipartEntity entity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE );
// picture
entity.addPart( "userfile", new FileBody(
new File( MyApp.getContext().getFilesDir(), "userfile.jpg" ),
"image/jpeg")
);
entity.addPart( "blahblah", new StringBody( "blah" )); // string value
post.setEntity( entity );
client.execute( post );
关于android - 使用Base64OutputStream 上传字符串到服务器 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109586/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!