Загруженный файл PDF с ошибкой неверного формата при открытии - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу скачать pdf файл на основе URL с сервера.Некоторые файлы загружаются и запускаются в программе просмотра PDF должным образом, но некоторые другие при попытке запустить, показывая «не может отобразить PDF (« filename.pdf имеет недопустимый формат »)».Но URL-адрес действителен и при загрузке из браузера работает нормально.

Вот мой код для загрузки pdf

final FileDownloadRESTCallEx2 restCall = new FileDownloadRESTCallEx2(urlModified,"fileType",DOWNLOADED_LOCATION, fname+".pdf", getContext(), true);
restCall.setIPlanetDirectoryToken(CookieValue);
restCall.execute();

Вот метод запуска метода FileDownloadRESTCall

public class FileDownloadRESTCallEx2 extends FileDownloadRESTCall {
    private boolean showDialog = true;

    public FileDownloadRESTCallEx2(final String query, final String headLine, String fdir, String fname, Context ctx, Boolean loading) {
        super(query, headLine, fdir, fname, ctx);
    }
    @Override
    protected boolean showDialog(){
        return showDialog;
    }
    protected void setShowDialog(boolean flag){
        showDialog = flag;
    }
    @Override
    protected void postProcessInUI() {
        try {
            String filepath2view = file2view();
            if (filepath2view == null || filepath2view.length() < 1)
                return;
            if (FileUtils.isEmptyFile(filepath2view))
                return;
            String filename= filaname();
            Toast.makeText(getAppContext(), DOWNLOADED + "  " + filename, Toast.LENGTH_LONG).show();

            launchPdfViewer(getContext(), filepath2view);
        }
    }
}

Метод launchpdfviewer - это

public static void launchPdfViewer(final Context context, String filepath2view) {
   try {
       String fileType = "application/pdf";
       if (deviceCanHandleFileType(context, fileType)) {
           Intent intent = new Intent(Intent.ACTION_VIEW);
           File file = new File(filepath2view);
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           intent.setDataAndType(Uri.fromFile(file), fileType);
           context.startActivity(intent);
       } else {
           final Toast toast = Toast.makeText(context, "To open this document, your device\n requires a native PDF reader.", Toast.LENGTH_SHORT);
           toast.setGravity(Gravity.CENTER, 0, 0);
           toast.show();
       }
   } catch (Exception ex){
         EikonLogger.error("e",ex.getMessage());
   }
}

, он показывает сообщение об ошибке только для некоторых файлов, даже если в URL-адресе находится допустимый файл.Любая помощь приветствуется

...