загрузка файла PDF не преобразуется в base64 в Android - PullRequest
0 голосов
/ 16 апреля 2019

Я не могу преобразовать pdf-файл в строку base64, но файл успешно загружен, когда я открываю pdf-файл, показывающий размер файла 0 КБ.Этот же код работает для изображения, но когда я пытаюсь использовать для преобразования в PDF-файл, он не работает.в моем коде я создал метод NewBase64, в котором я конвертирую pdf файл в base64, любой может сказать мне, где я ошибся, плз, помогите мне.

private String KEY_IMAGE = "image";
            private String KEY_NAME = "name";

            private int PICK_IMAGE_REQUEST = 1;
            VolleyAppController volleyAppController;
            mydb db;
            public static String url = "http://xxx.xxx.x.x:xx/Android_Service.asmx/UploadPDFFile";
            int SELECT_MAGAZINE_FILE = 1;
            private File myFile;
            String encodeFileToBase64Binary = "";


            private String NewBase64(String Path) {

                String encoded = "";
                try {
                    File file = new File(Path);

                    ByteArrayOutputStream bos = new ByteArrayOutputStream();
                    ObjectOutputStream oos = new ObjectOutputStream(bos);
                    oos = new ObjectOutputStream(bos);
                    oos.writeObject(file);
                    bos.close();
                    oos.close();
                    byte[] bytearray = bos.toByteArray();
                    encoded = Base64.encodeToString(bytearray, Base64.DEFAULT);
                } catch (Exception ex) {

                }
                return encoded;
            }


            private void uploadImage() {


                    @RequiresApi(api = Build.VERSION_CODES.O)
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {

                        String image = null;


                        image = NewBase64(encodeFileToBase64Binary);



                        String name1 = name.getText().toString().trim();


                        Map<String, String> params = new Hashtable<String, String>();


                        params.put(KEY_IMAGE, image);
                        params.put(KEY_NAME, name1);


                        return params;
                    }
                };

        }     

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете конвертировать PDF в base64, используя метод ниже

public String NewBase64(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();
    }
...