J'essaie de publier mes données en utilisant Volley mais je ne peux pas télécharger mon image sur le serveur. Toujours obtenir une erreur comme le code de réponse inattendu 500 pour http:\\www.mybaseurl.com/upload.php
. Voici mon code par lequel j'essaie de télécharger
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
private void uploadImage(){
//Showing the progress dialog
final ProgressDialog loading = ProgressDialog.show(this,"Uploading...","Please wait...",false,false);
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
//Disimissing the progress dialog
loading.dismiss();
//Showing toast message of the response
Toast.makeText(MainActivity.this, s , Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//Dismissing the progress dialog
loading.dismiss();
//Showing toast
Toast.makeText(MainActivity.this, ""+volleyError, Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
//Converting Bitmap to String
String image = getStringImage(bitmap);
//Getting Image Name
String name = editTextName.getText().toString().trim();
//Creating parameters
Map<String,String> params = new Hashtable<String, String>()
params.put("empsno", "81");
params.put("storesno", "165");
params.put("lrSno", "1808");
params.put("recQty", "0");
params.put("recVol", "0");
params.put("recWgt", "0");
params.put("damageQty", "0");
params.put("looseQty", "0");
params.put("deliveryDate", "2016-09-24");
params.put("deliveryTime", "10:15");
params.put("uploadFile", image);
params.put("remarks", "mytestingrem");
params.put("receivedBy", "amankumar");
params.put("ipAddress", "12.65.65.32");
//returning parameters
return params;
}
};
//Creating a Request Queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Adding request to the queue
requestQueue.add(stringRequest);
}
private void showFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
//Getting the Bitmap from Gallery
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
//Setting the Bitmap to ImageView
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onClick(View v) {
if(v == buttonChoose){
showFileChooser();
}
if(v == buttonUpload){
uploadImage();
}
}
Veuillez m'aider, comment télécharger le fichier avec ces paramètres. Je suis nouveau en volley. Je copie simplement collez ce code depuis https://www.simplifiedcoding.net/Android-volley-tutorial-to-upload-image-to-server
. Même moi, je ne sais pas si j'utilise correctement ou non. Merci d'avance
Vous devez comprendre le concept d'utilisation de la bibliothèque de volley et des téléchargements d'images. Voici quelques autres liens utiles pour le téléchargement d'images et l'utilisation de la bibliothèque de volley.
Téléchargement d'image en utilisant plusieurs parties
Remarque: j'ai également testé que votre tutorial.code est correct. Veuillez vérifier correctement le chemin de votre image. Si possible, utilisez leur code php sur n'importe quel serveur Web hébergé. et vérifier leur réponse json et recouper votre paramètre que vous avez passé avec les paramètres du script serveur ..