显示上传图像的历史记录

时间:2019-04-11 14:48:53

标签: objective-c uitableview uiimageview

因此,我有一个应用程序可以在Objective-C中使用HTTP'POST'请求上传多张照片,并且运行良好。但是我想做的是在“上传历史记录”部分的表格中显示从该特定设备上传的所有图像。我想知道如何获取设备发布的每个图像的图像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 :(得分:0)

成功上传这些图像后,服务器应向您返回两件事

  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或您喜欢的任何其他Pod将它们延迟加载到表视图中

相关问题