How to convert a file to Base64?

后端 未结 7 1375
遥遥无期
遥遥无期 2020-12-06 09:58

Here the report contain the path(pathname in sdcard in string format)

File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, rep         


        
相关标签:
7条回答
  • 2020-12-06 10:32

        public static String uriToBase64(Uri uri, ContentResolver resolver, boolean thumbnail) {
            String encodedBase64 = "";
            try {
                byte[] bytes = readBytes(uri, resolver, thumbnail);
                encodedBase64 = Base64.encodeToString(bytes, 0);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            return encodedBase64;
        }

    and call it in this way

       String image = BitmapUtils.uriToBase64(Uri.fromFile(file), context.getContentResolver());

    0 讨论(0)
  • 2020-12-06 10:36
    String value = Base64.encodeToString(bytes, Base64.DEFAULT);
    

    But you can directly convert it in to String .Hope this will work for you.

    0 讨论(0)
  • 2020-12-06 10:37

    Convert Any file, image or video or text into base64

    1.Import the below Dependancy

     compile 'commons-io:commons-io:2.4'
    

    2.Use below Code to convert file to base64

    File file = new File(filePath);  //file Path
    byte[] b = new byte[(int) file.length()];
     try {
        FileInputStream fileInputStream = new FileInputStream(file);
        fileInputStream.read(b);
        for (int j = 0; j < b.length; j++) {
            System.out.print((char) b[j]);
        }
    } catch (FileNotFoundException e) {
        System.out.println("File Not Found.");
        e.printStackTrace();
    } catch (IOException e1) {
        System.out.println("Error Reading The File.");
        e1.printStackTrace();
    }
    
    byte[] byteFileArray = new byte[0];
     try {
        byteFileArray = FileUtils.readFileToByteArray(file);
    } catch (IOException e) {
        e.printStackTrace();
    }
    
    String base64String = "";
     if (byteFileArray.length > 0) {
        base64String = android.util.Base64.encodeToString(byteFileArray, android.util.Base64.NO_WRAP);
        Log.i("File Base64 string", "IMAGE PARSE ==>" + base64String);
    }
    
    0 讨论(0)
  • 2020-12-06 10:43

    You can try this.

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    ...
    byte[] byteArray = byteArrayOutputStream.toByteArray();
    base64Value = Base64.encodeToString(byteArray, Base64.DEFAULT);
    
    0 讨论(0)
  • 2020-12-06 10:45

    To convert a file to Base64:

    File imgFile = new File(filePath);
    if (imgFile.exists() && imgFile.length() > 0) {
        Bitmap bm = BitmapFactory.decodeFile(filePath);
        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.JPEG, 100, bOut);
        String base64Image = Base64.encodeToString(bOut.toByteArray(), Base64.DEFAULT);
    }
    
    0 讨论(0)
  • 2020-12-06 10:46

    I believe these 2 sample codes will help at least someone the same way many have helped me through this platform. Thanks to StackOverflow.

    // Converting Bitmap image to Base64.encode String type
        public String getStringImage(Bitmap bmp) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageBytes = baos.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            return encodedImage;
    }
        // 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;
        }
    

    I will be glad to answer any question regarding to these codes.

    0 讨论(0)
提交回复
热议问题