Открытие pdf-файла в приложении Cordova через веб-сервис - PullRequest
0 голосов
/ 21 мая 2019

У меня есть приложение Cordova, которое использует веб-сервис C # для связи с базой данных SQL.Это прекрасно работает.Моя проблема в том, что у меня есть некоторые документы в формате pdf на сервере с локальным файлом filePath, хранящимся в базе данных, и мне нужно открыть их в приложении.

Я делал аналогичную вещь раньше, когда у документов был URL, гдеони могут быть доступны, поэтому они просто открываются, но в этом случае нет внешнего доступа к файлу.

Так что мой вопрос заключается в следующем .... как мне лучше всего передать файл с сервера в приложениечтобы открыть его?

Мне не нужно хранить файл на устройстве, просто откройте его, чтобы его можно было прочитать.

Я был бы очень признателен, если бы кто-то мог направить меня вправильное направление, поскольку я понятия не имею, как лучший метод для достижения того, что я после.

***** ОБНОВЛЕНИЕ ******

Правильно, я не думаю,Я за миллион миль отсюда, но у меня такое ощущение, что я делаю что-то в корне неправильно.

Я создаю байт [], используя:

byte[] bytes = System.IO.File.ReadAllBytes(filepath);

, что приводит к очень длинной строке.

В приложении я получаю эту строку и использую следующее для восстановленияTute его как файл:

var bytes = new Uint8Array(data);
saveByteArray("mytest.txt", data); 


        function base64ToArrayBuffer(base64) {
            var binaryString = window.atob(base64);
            var binaryLen = binaryString.length;
            var bytes = new Uint8Array(binaryLen);
            for (var i = 0; i < binaryLen; i++) {
            var ascii = binaryString.charCodeAt(i);
            bytes[i] = ascii;
            }
            return bytes;
        }

        function saveByteArray(reportName, byte) {
            var blob = new Blob([byte], {type: "application/txt"});
            var link = document.createElement('a');
            link.href = window.URL.createObjectURL(blob);
            var fileName = reportName;
            link.download = fileName;
            link.click();
        }

Это создаст пустой файл или поврежденный.

Может кто-нибудь помочь с этим, пожалуйста?Новая пара глаз будет с благодарностью получена.

Спасибо

1 Ответ

0 голосов
/ 21 мая 2019

Что бы вы могли сделать, это создать новую конечную точку в бэкэнде веб-службы C #, загрузить файл с этой конечной точки, сохранить его локально и отобразить в своем приложении.

За конечной точкой он будет использовать местоположение файла из базы данных и получит содержимое файла в потоке, из которого хранится pdf.Этот поток данных будет помещен в объект результата json в виде массива байтов.Наконец, ваше приложение должно получить этот объект json, а затем создать файл pdf из массива байтов и по имени файла.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...