【问题标题】:Displaying a history of uploaded images显示上传图像的历史记录
【发布时间】:2019-04-11 14:48:52
【问题描述】:

所以我有一个应用程序可以在 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];

【问题讨论】:

  • 我建议在您的问题中添加一些代码,希望有人帮助您。
  • 我主要关心的是如何取回图像 url 并将其放入某种数据库中,如果有人可以帮助我,那就太好了。
  • 我一直都做错了我的另一个问题是我应该怎么做:P

标签: objective-c uitableview uiimageview


【解决方案1】:

成功上传这些图片后,服务器应该返回两件事

  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 将它们延迟加载到表格视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2015-05-20
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多