使用 AsyncHttpclient 上传位图时出错
Error uploading bitmap using AsyncHttpclient
我正在尝试将位图(相机拍摄的图像 - Android)发送到 nodejs。我正在使用 AsycnHttpClient 进行相同的操作。我能够成功发送查询参数。我确实提到了发送和接收文件的一些链接。我尝试了同样的方法,但是,我想位图和文件的 nodejs 代码需要不同(不确定?!)
你能帮忙吗?
客户端代码:
private void storeImage(Bitmap bm){
AsyncHttpClient client = new AsyncHttpClient();
//Append the parameters in the Service URL
RequestParams rp = new RequestParams();
String SERVICE_URL_REG = SERVICE_URL + "uploadImage?userID=rhari008";
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
ByteArrayInputStream bInput = new ByteArrayInputStream(data);
rp.put("image",bInput);
client.post(SERVICE_URL_REG, rp, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d(TAG,"Successfully uploaded the image");
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d(TAG,"Error in uploading the image");
}
});
}
服务端接收参数的代码:
//Image upload
router.post('/uploadImage', function(req, res, next) {
console.log("Image upload reached for " + req.query.userID);
var file = req.files.image;
console.log("File received : ");
//console.log("Image path : "+req.files.image.path);
res.json({result:"success"});
});
请先确保您的 NodeJS 服务器支持 multipart。
是的..我终于找到了解决方案。我在 base64 上对位图进行编码以对其进行字符串化。即存储post压缩。我检索了它并将其解码为位图。有效。
我正在尝试将位图(相机拍摄的图像 - Android)发送到 nodejs。我正在使用 AsycnHttpClient 进行相同的操作。我能够成功发送查询参数。我确实提到了发送和接收文件的一些链接。我尝试了同样的方法,但是,我想位图和文件的 nodejs 代码需要不同(不确定?!)
你能帮忙吗?
客户端代码:
private void storeImage(Bitmap bm){
AsyncHttpClient client = new AsyncHttpClient();
//Append the parameters in the Service URL
RequestParams rp = new RequestParams();
String SERVICE_URL_REG = SERVICE_URL + "uploadImage?userID=rhari008";
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
ByteArrayInputStream bInput = new ByteArrayInputStream(data);
rp.put("image",bInput);
client.post(SERVICE_URL_REG, rp, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d(TAG,"Successfully uploaded the image");
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d(TAG,"Error in uploading the image");
}
});
}
服务端接收参数的代码:
//Image upload
router.post('/uploadImage', function(req, res, next) {
console.log("Image upload reached for " + req.query.userID);
var file = req.files.image;
console.log("File received : ");
//console.log("Image path : "+req.files.image.path);
res.json({result:"success"});
});
请先确保您的 NodeJS 服务器支持 multipart。
是的..我终于找到了解决方案。我在 base64 上对位图进行编码以对其进行字符串化。即存储post压缩。我检索了它并将其解码为位图。有效。