我尝试将文件发送到服务器时遇到问题,我的问题是有时发送文件,有时不发送文件,我试图做的是发送图像和一些数据,该图像将被上传到服务器上的文件夹和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);
}
在控制台中显示给我的错误是我的服务器http://server/project/file.php
路径中的错误406。