Android 使用 Volley 将 PDF 发送到服务器
Android Sending PDF to server using Volley
我想发送存储在内部存储器中的 PDF 文件 ( InternalStrorage/PDF/OCK.pdf )
我已经使用 Android Volley 通过此函数毫无问题地将字符串数据发送到我的 php 服务器:
private void upload(){
StringRequest stringRequest = new StringRequest(Request.Method.POST, UploadURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
String Response = jsonObject.getString("response");
Toast.makeText(getApplicationContext(),Response, Toast.LENGTH_LONG).show();
selectedimage.setImageResource(0);
selectedimage.setVisibility(View.GONE);
} 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 HashMap<>();
params.put("date",DateFormat.getDateTimeInstance().format(new Date()).toString());
params.put("description",editTextDescription.getText().toString());
params.put("statut", whatstatutis());
params.put("action",editTextImediatActionTaken.getText().toString());
return params;
}
};
MySingleton.getInstance(getApplicationContext()).addTorequesteque(stringRequest);
}
我想同时发送包含我的数据的 PDF 文件。
终于找到解决办法了。
1- 只需将 PDF 转换为字节数组
2 字节数组转 base64
3- 像普通字符串一样发送
byte[] data = null;
File filessss = new File(Link_Of_The_PDF.pdf);
try {
data = FileUtils.readFileToByteArray(filessss);
} catch (IOException e) {
e.printStackTrace();
}
return Base64.encodeToString(data, Base64.DEFAULT);
我想发送存储在内部存储器中的 PDF 文件 ( InternalStrorage/PDF/OCK.pdf )
我已经使用 Android Volley 通过此函数毫无问题地将字符串数据发送到我的 php 服务器:
private void upload(){
StringRequest stringRequest = new StringRequest(Request.Method.POST, UploadURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
String Response = jsonObject.getString("response");
Toast.makeText(getApplicationContext(),Response, Toast.LENGTH_LONG).show();
selectedimage.setImageResource(0);
selectedimage.setVisibility(View.GONE);
} 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 HashMap<>();
params.put("date",DateFormat.getDateTimeInstance().format(new Date()).toString());
params.put("description",editTextDescription.getText().toString());
params.put("statut", whatstatutis());
params.put("action",editTextImediatActionTaken.getText().toString());
return params;
}
};
MySingleton.getInstance(getApplicationContext()).addTorequesteque(stringRequest);
}
我想同时发送包含我的数据的 PDF 文件。
终于找到解决办法了。 1- 只需将 PDF 转换为字节数组 2 字节数组转 base64 3- 像普通字符串一样发送
byte[] data = null;
File filessss = new File(Link_Of_The_PDF.pdf);
try {
data = FileUtils.readFileToByteArray(filessss);
} catch (IOException e) {
e.printStackTrace();
}
return Base64.encodeToString(data, Base64.DEFAULT);