Convert docx, doc to base64 android

前端 未结 2 717
温柔的废话
温柔的废话 2021-01-17 02:16

I am trying to get the docx file as shown below

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(req         


        
相关标签:
2条回答
  • 2021-01-17 02:35

    Try this, Hope it will work, I did for .pdf and .doc

    public static String convertFileToByteArray(File f) {
        byte[] byteArray = null;
        try {
            InputStream inputStream = new FileInputStream(f);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] b = new byte[1024 * 11];
            int bytesRead = 0;
    
            while ((bytesRead = inputStream.read(b)) != -1) {
                bos.write(b, 0, bytesRead);
            }
    
            byteArray = bos.toByteArray();
    
            Log.e("Byte array", ">" + byteArray);
    
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Base64.encodeToString(byteArray, Base64.NO_WRAP);
    }
    

    For picking file :

    private void chooseFile() {
        try {
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            try {
                startActivityForResult(intent, LOAD_IMAGE_RESULTS);
    
            } catch (ActivityNotFoundException e) {
    
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    }
    
    0 讨论(0)
  • 2021-01-17 02:40

    The above code always returns a nullpointerexception but this solved it without any error

    // Converting File to Base64.encode String type using Method
        public String getStringFile(File f) {
            InputStream inputStream = null; 
            String encodedFile= "", lastVal;
            try {
                inputStream = new FileInputStream(f.getAbsolutePath());
    
            byte[] buffer = new byte[10240];//specify the size to allow
            int bytesRead;
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT);
    
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    output64.write(buffer, 0, bytesRead);
                }
            output64.close();
            encodedFile =  output.toString();
            } 
             catch (FileNotFoundException e1 ) {
                    e1.printStackTrace();
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            lastVal = encodedFile;
            return lastVal;
        }
    
    0 讨论(0)
提交回复
热议问题