android - 任何人都可以知道如何在android中将图像数组发布到服务器吗?
问题描述
我陷入了一个需要向服务器发送图像数组的查询中。
我用谷歌搜索了它,但找不到任何相关数据,所以有人可以告诉我如何实现它吗?
早期答复是可观的。
我的代码是
private void imageUpload(final ArrayList imagePath) {
SimpleMultiPartRequest smr = new SimpleMultiPartRequest(
Request.Method.POST, BASE_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d( "Response", response );
try {
JSONObject jObj = new JSONObject( response );
String message = jObj.getString( "message" );
System.out.println( "Done" );
Toast.makeText( getApplicationContext(), message, Toast.LENGTH_LONG ).show();
} catch (JSONException e) {
// JSON error
e.printStackTrace();
Toast.makeText( getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG ).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
for (int i = 0; i<imagePath.size();i++){
String ab = imagePath.get( i ).toString();
System.out.println("Images is find path "+ab);
smr.addFile(""+i,imagePath.get(i).toString());
}
MyApplication.getInstance().addToRequestQueue(smr);
}
谢谢
解决方案
我正在使用https://github.com/esafirm/android-image-picker这个库来获取图像列表
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.upload_btn:
openImagesList();
break;
}
}
public void openImagesList() {
ImagePicker.create(this) // Activity or Fragment
.start();
}
@Override
public void onActivityResult(int requestCode, final int resultCode, Intent data) {
if (ImagePicker.shouldHandle(requestCode, resultCode, data)) {
// Get a list of picked images
List<Image> images = ImagePicker.getImages(data);
List<File> imgFile = new ArrayList<>();
for (Image imge : images) {
imgFile.add(new File(imge.getPath()));
}
for (File f : imgFile) {
if (f.exists()) {
Log.i(TAG, "exist");
}
}
uploadToSever(imgFile);
}
super.onActivityResult(requestCode, resultCode, data);
}
使用https://github.com/amitshekhariitbhu/Fast-Android-Networking发布请求
public void uploadToSever(List<File> imgList) {
AndroidNetworking.upload("your sever url")
.addMultipartFileList("image[]", imgList)
.addMultipartParameter("key", "value")
.setPriority(Priority.HIGH)
.build()
.setUploadProgressListener(new UploadProgressListener() {
@Override
public void onProgress(long bytesUploaded, long totalBytes) {
// do anything with progress
}
})
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
// do anything with response
}
@Override
public void onError(ANError error) {
// handle error
}
});
}
推荐阅读
- linkedin - LinkedIn API v2.0 中,如何通过人的令牌获取公司/列表
- spring - 如何在用户主目录中提供静态资源
- c# - 如何将数据源保存在列表中
(没有 sqlconnection 等) - android - 如果目标应用程序被强制关闭,PendingIntent 会发生什么?
- bash - Bash 检查是否安装了 nvm
- c++ - 从 VS2017U2 升级到 VS2017U8 后链接错误
- json - 当 json 输入结构错误时,Unmarshall 应该返回错误
- android - 在我的蓝牙应用程序中配对后设备未配对
- javascript - 如何将此变量从类方法导出到另一个文件?
- javascript - 兄弟组件通信角度6