Отображение истории загруженных изображений - PullRequest
0 голосов
/ 11 апреля 2019

Итак, у меня есть приложение, которое загружает несколько фотографий с запросом HTTP 'POST' в Objective-C, и оно отлично работает.Но то, что я пытаюсь сделать, это отобразить все изображения, загруженные с этого конкретного устройства, в таблицу, например раздел «История загрузок».Мне было интересно, как получить URL-адрес изображения для каждого изображения, которое публикует устройство, было бы лучше сохранить URL-адрес изображения в таблице NSDictionary или SQLite и как отобразить все изображения в таблице.Это пример загрузки одного изображения с одним имеющимся у меня параметром, но как мне получить URL-адрес изображения, чтобы вернуться ко мне и сохранить его, чтобы я мог отобразить все загруженные изображения в таблицу?

 [request setURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"POST"];
        [request addValue:contentType forHTTPHeaderField:@"Content-Type"];

        [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"uploaded_file\"; filename=\"%@.png\"\r\n", dateString] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[NSData dataWithData:imagePNG]];
        [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];


        [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"ticket\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[ticketNumber.text dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];


        [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];


        [request setHTTPBody:body];

1 Ответ

0 голосов
/ 11 апреля 2019

После успешной загрузки этих изображений сервер должен вернуть вам две вещи

  1. Http-код состояния 201: это означает, что на сервере создан ресурс.
  2. путь вновь созданных ресурсов в массиве.

Таким образом, ваш ответ JSON для службы загрузки изображений может выглядеть примерно так

    {
  "imagePath": [
    "https://yourServer/img/img1.png"
    "https://yourServer/img/img2.png",
    "https://yourServer/img/img3.png"
  ],
}

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

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

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