Como fazer upload do arquivo PDF para o servidor no aplicativo Android

Neel Patel

Estou tentando fazer upload do arquivo pdf para o meu servidor. Consigo fazer upload da decodificação de imagens usando bitmap. Estou reutilizando o mesmo código, mas preciso carregar o pdf de um usuário em meu aplicativo Android.

private void chooseFile(int type2) {
//System.out.println(type2);
Intent intent = new Intent();
//intent.setType("application/pdf");
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),type2 );}

@Override protected void onActivityResult (int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult (requestCode, resultCode, data);

//  System.out.println(data);
if ((requestCode == 1 || requestCode == 2 || requestCode == 3 || requestCode == 4 || requestCode == 5 || requestCode == 6 || requestCode == 7 || requestCode == 8) && resultCode == RESULT_OK && data != null && data.getData() != null) {
     Uri filePath = data.getData();
    try {
        bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
        // profile_image.setImageBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }

    if (requestCode == 1) {
        String userString = getStringImage(bitmap , 1);
        RequestQueue requestQueue = Volley.newRequestQueue(CashFlowActivity.this);
        String url = C.url+"cashflow_upload.php";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                //System.out.println(response);
                    // Toast.makeText(getApplicationContext(), response, Toast.LENGTH_SHORT).show();
                p1 = "user_file/u_image/"+userID+"/extract.pdf";
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(), "Error while uploading image", Toast.LENGTH_SHORT).show();
            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("userId", userID);
                params.put("extractImage",userString);
            return params;
            }
        };

        requestQueue.add(stringRequest);

Não estou recebendo um método direto para fazer upload de PDF por meio do aplicativo Android associado ao PHP, Mysql. Fiz algumas mudanças aqui e ali, consigo obter um arquivo pdf no meu servidor, mas o próprio pdf está vazio ou contém a string de localização do arquivo.

public String getStringImage (Bitmap bitmap, int type){

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);

byte[] imageByteArray = byteArrayOutputStream.toByteArray();
String encodeImage = Base64.encodeToString(imageByteArray, Base64.DEFAULT);

imageByteArray = Base64.decode(encodeImage, Base64.DEFAULT);
Bitmap decodeImage = BitmapFactory.decodeByteArray(imageByteArray, 0, imageByteArray.length);
if (type == 1) {
    extractPhoto.setImageBitmap(decodeImage);
} else if (type == 2) {
    bankPhoto.setImageBitmap(decodeImage);
} else if (type == 3) {
    itrPhoto.setImageBitmap(decodeImage);
} else if (type == 4) {
    bankPhoto1.setImageBitmap(decodeImage);
} else if (type == 5) {
    itrPhoto1.setImageBitmap(decodeImage);
}else if (type == 6) {
    bankPhoto2.setImageBitmap(decodeImage);
}else if (type == 7) {
    itrPhoto2.setImageBitmap(decodeImage);
}else if (type == 8) {
    bankPhoto3.setImageBitmap(decodeImage);
}
return encodeImage;

}

Gaurav Hulmukh

Você pode usar esta função:

public String getStringPdf (Uri filepath){
    InputStream inputStream = null;
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    try {
       inputStream =  getContentResolver().openInputStream(filepath);

        byte[] buffer = new byte[1024];
        byteArrayOutputStream = new ByteArrayOutputStream();

        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            byteArrayOutputStream.write(buffer, 0, bytesRead);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    byte[] pdfByteArray = byteArrayOutputStream.toByteArray();

    return Base64.encodeToString(pdfByteArray, Base64.DEFAULT);
}

Graças a blackapps para orientar o método correto.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como fazer upload de um arquivo sqlite db para o servidor ftp a partir do programa android

Como fazer upload de arquivos PDF e docx para o servidor a partir do pacote principal do aplicativo?

Como fazer upload de imagens para o servidor do aplicativo de formulários xamarin

Como fazer o upload do arquivo para o servidor FTP em grails

Como fazer upload de um arquivo do aplicativo do console para o site MVC?

Não é possível fazer upload do arquivo usando FormData para expressar o servidor do aplicativo Rea

Como posso fazer upload de um arquivo de imagem do NSUserDefault salvo para o servidor php?

Como fazer o upload do arquivo Csv do servidor dedicado para o NonDedicatedServer e, em seguida, realizar a seguinte tarefa

como fazer upload de imagens para o servidor usando a câmera e a galeria do Android

Como fazer upload de um aplicativo angular com codificação do lado do servidor para um servidor web como o hostgator?

Como fazer upload do arquivo JSON para o firebase

Como fazer upload do arquivo para o armazenamento de blob do azure diretamente do aplicativo Spring Boot, sem levar o arquivo para a memória (memória de buffer)

Como posso fazer upload de um arquivo para o Kloudless do meu Android?

Como fazer o upload do cliente do formulário de arquivo para o servidor se o comprimento do arquivo for superior a 1 gb?

android usando cliente Http assíncrono como fazer upload de um arquivo mulit para o servidor var php?

Como fazer upload do aplicativo laravel no servidor do produto com o modo de produto

Não é possível fazer upload do arquivo do PHP para o servidor Centos?

Como fazer upload / download de arquivo do GCS para / do servidor ftp com Airflow FTPHook

Como fazer upload / download de arquivo do GCS para / do servidor ftp com Airflow FTPHook

Node.js falhou ao fazer upload do arquivo de imagem para o firebase do servidor

Como fazer upload de imagem (Base64 String) para o servidor do Android com NodeJS como back end?

fazer upload da imagem do aplicativo ipad para o servidor node js usando multiparty

Não é possível fazer upload do arquivo para o servidor em PHP

Não é possível fazer upload do arquivo para o servidor

o código da versão mostra diferente, do código da versão do arquivo de grau do aplicativo, ao fazer upload para a app store como aab

Não é possível fazer upload do arquivo para o aplicativo phalcon

Como obter um arquivo do disco local e, em seguida, passá-lo para um método POST para fazer o upload para o servidor

Arquivo não fazer upload para o servidor FTP

Como fazer upload de um arquivo para um servidor?

TOP lista

quentelabel

Arquivo