我想上传多张图片(使用base64编码)。 我使用for:
发送这些图像for(int i =1; i<6; i++){
bmp = ((BitmapDrawable)imgs[i].getDrawable()).getBitmap();
String image = getEncoded64ImageStringFromBitmap(bmp);
SendImage(image);
}
但它只发送了一个或两个5个请求的请求!这里也没有错误。我有一个requestCueue,我在onCreate方法初始化。 这是我的截击请求:
private void SendImage( final String image) {
String URL = APPURL;
final StringRequest stringRequest = new StringRequest(Request.Method.POST, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new Hashtable<String, String>();
params.put("image", image);
return params;
}
};
{
requestQueue.add(stringRequest);
Toast.makeText(AddProduct.this,"added "+requestQueue.getSequenceNumber(),Toast.LENGTH_SHORT).show();
}}
答案 0 :(得分:0)
您必须通过递归方法
执行此操作像
只需要打电话一次
multiFileUpload(uploadedFileCount);
然后它将处理递归模型中的所有文件。
private int totalFileCount = 6;
private int uploadedFileCount = 1;
private String URL = APPURL;
private multiFileUpload(int _uploadedFileCount)
{
final StringRequest stringRequest = new StringRequest(Request.Method.POST, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
if((uploadedFileCount<6)
{
uploadedFileCount++;
multiFileUpload(uploadedFileCount);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Bitmap bmp = ((BitmapDrawable)imgs[_uploadedFileCount].getDrawable()).getBitmap();
String image = getEncoded64ImageStringFromBitmap(bmp);
Map<String, String> params = new Hashtable<String, String>();
params.put("image", image);
return params;
}
};
{
requestQueue.add(stringRequest);
Toast.makeText(AddProduct.this,"added "+requestQueue.getSequenceNumber(),Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:0)
我的问题出现在后端部分。图像同时出现,我使用time()函数命名它们,只保存在服务器中的一个或两个文件。