【问题标题】:API image file upload iPhone to Ruby on RailsAPI 图像文件将 iPhone 上传到 Ruby on Rails
【发布时间】:2011-05-07 14:43:43
【问题描述】:

我是为多个 iPhone 客户端提供服务的 API 的后端 Rails 开发人员。我不是 iPhone 开发者。

我需要通过对 API 的 POST 请求从客户端接受二进制数据(在本例中为多个图像文件)。

要获取文件内容(除了图像类型之外的文件元数据在此不相关),iPhone 开发人员可能会使用哪些工具?我找到了ObjectiveResource(iPhone on Rails 使用)和ASIHTTPRequest。在我为这些找到的页面中,没有迹象表明执行控制器操作时上传的文件将具有什么形式。它是 Ruby File 对象还是 Tempfile 对象?我不控制 iPhone 代码开发,那里有一些跨文化交流的困难,他们到目前为止还没有使用这些建议。如果我可以向他们提交更好的信息,我可能会得到更好的数据。

后端应用目前运行的是 Rails 2.3.10,很快(在接下来的几周内)可能会转换为 Rails 3。

谢谢, 克雷格

【问题讨论】:

    标签: iphone ruby-on-rails image api file-upload


    【解决方案1】:

    ObjectiveResource 本身不支持文件上传。尝试将 ASIHTTPRequest 与此 sn-p 一起使用:

    NSURL *url = [NSURL URLWithString:@"http://localhost:3000/file"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:@"Sample" forKey:@"name"];
    [request setFile:... forKey:@"file"];
    [request startSynchronous];
    

    更多详情请查看示例页面here(发送数据)。

    帖子将被编码为标准的多部分表单帖子(就像它来自 HTML 表单一样)。如果您使用回形针来存储上传的内容,那么奇迹就会发生!

    【讨论】:

      【解决方案2】:

      Use JSON over HTTP

      NSMutableURLRequest *request = 
        [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:urlStr]]; 
       [request setHTTPMethod: @"POST"];
       [request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
       NSString* requestDataLengthString = [[NSString alloc] initWithFormat:@"%d", [jsonMessageStr length]];
       [request setValue:requestDataLengthString forHTTPHeaderField:@"Content-Length"];
       [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
       [request setHTTPBody:jsonData];
       NSURLConnection *theConnection = 
        [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
      

      【讨论】:

        猜你喜欢
        • 2018-04-18
        • 2021-04-12
        • 2011-04-29
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 2021-02-04
        • 2010-12-14
        • 2010-11-25
        相关资源
        最近更新 更多