为了账号安全,请及时绑定邮箱和手机立即绑定

从 Android 应用上传大型 PDF 文件时得到空白响应

从 Android 应用上传大型 PDF 文件时得到空白响应

aluckdog 2023-05-17 16:00:58
我想将 PDF 文件从 android 本机应用程序上传到服务器。我检查了服务器配置,一切都很好,比如上传时间和大小。我在 base64 中转换 PDF 文件并尝试发送到服务器。服务器发送 FILE[] 的空白值(检查下面的响应)。我尝试了另一种上传 PDF 的方法,即多部分。这也不起作用。//Multipart code - 1st methodRequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file", new File(pdfpath).getName(),RequestBody.create(MediaType.parse("application/pdf"), new File(pdfpath).getName())).addFormDataPart("some-field", "some-value").build();System.out.println("Multipart Data  "+requestBody.toString());//---------------------------------------------------------//Base64 code - 2nd methodpublic String converPDFBase64(File mfile) {       ByteArrayOutputStream output=null;       try {           InputStream inputStream = null;           inputStream = new FileInputStream(mfile.getAbsolutePath());           byte[] buffer = new byte[8192];           int bytesRead;           output = new ByteArrayOutputStream();           Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT);while ((bytesRead = inputStream.read(buffer)) != -1) {               output64.write(buffer, 0, bytesRead);           }           output64.close();       } catch (IOException e) {           e.printStackTrace();       }        return output.toString();   }我想使用任何方法将大型 PDF 文件发送到服务器。
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

我明白了,我正在使用 AQuery,现在我已经改变了它。现在通过 OkHttpClient 调用服务,它工作正常。


public Message getMessageMedia(File file,String type) {

       Message messageObj = new Message();

       try {

           OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).writeTimeout(180, TimeUnit.SECONDS).readTimeout(180, TimeUnit.SECONDS).build();

           RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)

                   .addFormDataPart(RequestParameters.USERID, "" + SharedPreferencesMethod.getUserId(this))

                   .addFormDataPart(RequestParameters.TO_USERID, "" + user.getUserId())

                   .addFormDataPart(RequestParameters.MESSAGE_MEDIA,file.getName(),RequestBody.create(MediaType.parse("application/pdf"),file))

                   .addFormDataPart(RequestParameters.MESSAGE_MEDIA_TYPE, "" + type)

                   .addFormDataPart(RequestParameters.MESSAGE,"" +"PDF")

                   .addFormDataPart("msg_identifer", System.currentTimeMillis() + "")

                   .build();

           Request request = new Request.Builder()

                   .url(API.SEND_MESSAGE)

                   .post(body)

                   .build();

           System.out.println("Input Data"+request.toString());

           client.newCall(request).enqueue(new Callback() {

               @Override

               public void onFailure(final Call call, final IOException e) {

                   System.out.println("PDF Faliure   "+e.toString());

               }

               @Override

               public void onResponse(final Call call, final Response response) throws IOException {

                   if (!response.isSuccessful()) {

                       System.out.println("PDF Response Error   "+response.toString());

                   }else{

                       System.out.println("PDF Response   "+response.toString());

                   }

               }

           });

           etMessage.setText("PDF");

           Date now = Calendar.getInstance().getTime();

           SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm a");

           messageObj.setId(REMOVE);

           messageObj.setMsg_identifer(System.currentTimeMillis() + "");

           messageObj.setMessageMedia(String.valueOf(file));

           messageObj.setMessageMediaType(type);

           messageObj.setReadStatus("0");

           messageObj.setMessageAT("Sending...");

           messageObj.setUserId(SharedPreferencesMethod.getUserId(getApplicationContext()));

       } catch (Exception ex) {

           System.out.println("Media Message Error  "+ex);

       }

       return messageObj;

   }


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信