У меня проблема с попыткой отправить файл на сервер, моя проблема в том, что иногда файл отправляется, а иногда нет, я пытаюсь отправить изображение и некоторые данные, изображение будет загружено напапка на сервере и данные в BD, проблема в том, что я не знаю, почему иногда, если изображение отправлено и сохранено правильно, а иногда оно ничего не отправляет и выдает ошибку 406, я незнаю, это потому что изображения, которые я посылаю, очень тяжелые или в чем может быть проблема
Я пытался сжать растровое изображение, которое я отправил, используя PNG или WEBP, но у меня не получилось ни одного, сервер работает нормально
Это код, который я использую для создания своего растрового изображения:
public String getStringImagen(Bitmap bit){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 98, baos);
byte[] imagenBytes = baos.toByteArray();
String encodeImagen = Base64.encodeToString(imagenBytes, Base64.DEFAULT);
imagenCodificada = encodeImagen;
return encodeImagen;
}
И это мой метод, когда вы отправляете все на сервер:
public void enviarRegistro(){
final ProgressDialog cargando = ProgressDialog.show(this, "Enviando solicitud", "Espere por favor");
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
cargando.dismiss();
Toast.makeText(DatosBancarios.this, response, Toast.LENGTH_LONG).show();
Log.i("CONEXION", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
cargando.dismiss();
Toast.makeText(DatosBancarios.this, "Ha ocurrido un error: "+error.getMessage(), Toast.LENGTH_LONG).show();
}
}){
protected Map<String, String> getParams() throws AuthFailureError {
String imagen = getStringImagen(bitmap);;
String rutaFinalImagen = "http://www.servidor.mx/codigo/img/"+nombre_imagen+".png";
Log.i("HIDEOESP","La foto es: "+imagen);
Log.i("HIDEOESP","El nombre de la foto es: "+nombre_imagen);
//Imprimimos la fecha
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss");
String currentDateandTime = sdf.format(new Date());
Log.i("FECHA", currentDateandTime);
Map<String, String> params = new Hashtable<String, String>();
//Parametros de la imagen
params.put(KEY_IMAGE, getStringImagen(bitmap));
params.put(KEY_NOMBRE, nombre_imagen);
//Primer bloque
params.put(KEY_NOMBReUSU, nombreUsuario);
params.put(KEY_APELLIDOUSU, apellidoPUsuario);
params.put(KEY_APELLIDOUSUM, apellidoMUsuario);
params.put(KEY_NUMEROE, numeroEUsuario);
params.put(KEY_FECHA, fechaNUsuario);
params.put(KEY_USUARIO, rfcUsuario);
params.put(KEY_TEL, telefonoCUsuario);
params.put(KEY_CEL, celularUsuario);
params.put(KEY_EMAIL, emailUsuario);
params.put(KEY_NOMBREIMG, nombre_imagen);
params.put(KEY_RUTA, rutaFinalImagen);
//Seundo bloque
params.put(KEY_CLAVEUNO, beneficiarioBloqueUno);
params.put(KEY_CLAVEDOS, beneficiarioBloqueDos);
params.put(KEY_CLAVETRES, beneficiarioBloqueTres);
params.put(KEY_CLAVECUATRO, beneficiarioBloqueCuatro);
//Tercer bloque
if(ahorroFinal.getText().toString().equals("")){
params.put(KEY_NOMFINAL, "No aplica");
params.put(KEY_TITULO, "No aplica");
params.put(KEY_FIRMA, "No aplica");
params.put(KEY_FECHA, "No aplica");
params.put(KEY_DATOSPERSONALES, "No aplica");
}else{
params.put(KEY_NOMFINAL, KEY_NOMFINAL.getText().toString());
params.put(KEY_TITULO, KEY_TITULO.getText().toString());
if(KEY_FIRMA== null){
params.put(KEY_FIRMA, KEY_FIRMA.getText().toString());
}else{
params.put(KEY_DATOSPERSONALES, datoTarjeta);
}
params.put(KEY_FECHA, KEY_FECHA.getText().toString());
params.put(KEY_DATOSPERSONALES, KEY_DATOSPERSONALES.getText().toString());
}
//Tercer bloque dos
if(clabeBanco.getText().toString().equals("")){
params.put(KEY_B, "No aplica");
params.put(KEY_C, "No aplica");
}else{
params.put(KEY_B, "No aplica");
params.put(KEY_C, "No aplica");
}
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
Intent intent = new Intent(getApplicationContext(), RegistroFinal.class);
startActivity(intent);
}
Ошибка, которая печатаетмне в консоли ошибка 406 в пути моего сервера http: //server/project/file.php