我想用此代碼上傳多個圖像,它的工作原理。我遇到的問題是我通過一個地方params.put(KEY_IMAGE, encodedString)
。除此之外,我想通過多個鍵傳遞它們,所以在PHP中定位它們會更容易。Android多重圖像凌空傳遞參數
選擇的圖像:
ChooseBn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in = galleryPhoto.openGalleryIntent();
in.setType("image/*");
in.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(in, GALLERY_REQUEST);
}
});
的圖片上傳:
final MyCommand myCommand = new MyCommand(getApplicationContext());
UploadBn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (String imagePath : imageList) {
try {
Bitmap bitmap = PhotoLoader.init().from(imagePath).requestSize(500, 500).getBitmap();
final String encodedString = ImageBase64.encode(bitmap);
String url = "http://192.168.100.3/upload.php";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error while uploading image", Toast.LENGTH_SHORT).show();
}
}) {
String name = NAME.getText().toString().trim();
String lat = LAT.getText().toString().trim();
String lng = LNG.getText().toString().trim();
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put(KEY_IMAGE, encodedString);
params.put(KEY_NAME, name);
params.put(KEY_LAT, lat);
params.put(KEY_LNG, lng);
return params;
}
};
myCommand.add(stringRequest);
} catch (FileNotFoundException e) {
Toast.makeText(getApplicationContext(), "Error while loading image", Toast.LENGTH_SHORT).show();
}
}
}
});
如果您有多個圖像,那麼您應該分別對它們進行編碼。 –
這很明顯,我如何分離每個圖像? imageList是一個ArrayList <>(); – Andri
我看到你有這個清單,那麼究竟有什麼不正確?你的PHP是否接受'KEY_IMAGE'變量的值是否正確? –