Как скачать pdf файл с сервера, который находится в base64string? - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно скачать pdf-файл, который я получаю в ответе API в виде base64string.

Как сохранить его локально на основе тега ячейки и просмотреть его с помощью documentcontroller?

Eg-apiresponse - это массив словарей с различными pdf-файлами, в которых у нас есть ключ с именем «pdf»: «zcvffaewww ..» *

. Мне нужно загрузить эти pdf-файлы одним касанием uibutton на uitableviewcell и просмотреть их в documentcontroller.

Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

вы получаете строку base64 в JSON, это означает, что вы также правильно получаете имя файла и тип файла (если не получаете, тогда все в порядке)

Шаг 1 : Вместо этогоскачать, вы можете просмотреть этот PDF в WebView.Вот способ сделать это,

// convert your base64 string into NSData
NSData* myData = [NSData dataFromBase64String: yourBase64String];

, затем напишите ниже код для отображения PDF в WebView,

[_webView loadData:myData
                 MIMEType:@"application/pdf"
                 textEncodingName:@"NSUTF8StringEncoding"
                   baseURL:[NSURL URLWithString:@"https://www.google.co.in/"]];

// zooming pdf view

 _webView.scalesPageToFit = YES;
 _webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

Это покажет PDF в WebView

шаг 2 : для загрузки pdf введите код

NSURL *URL = [NSURL URLWithString:
                      [NSString stringWithFormat:@"data:application/pdf;base64,%@",
                       numStr]];

NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
  NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString  *documentsDirectory = [paths objectAtIndex:0];  

  NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.pdf"];
  [urlData writeToFile:filePath atomically:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...