亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 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,現在我已經改變了它?,F在通過 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 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號