Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
API图像文件将iPhone上传到Ruby on Rails_Iphone_Ruby On Rails_Image_Api_File Upload - Fatal编程技术网

API图像文件将iPhone上传到Ruby on Rails

API图像文件将iPhone上传到Ruby on Rails,iphone,ruby-on-rails,image,api,file-upload,Iphone,Ruby On Rails,Image,Api,File Upload,我是一名后端Rails开发人员,开发了一个为多个iPhone客户端提供服务的API。我不是iPhone开发者 我需要通过对API的POST请求从客户端接受二进制数据(本例中有几个图像文件) 要获取文件内容(除图像类型以外的文件元数据在此不相关),iPhone开发人员可能会使用哪些工具?我找到了ObjectiveResource(iPhone在Rails上使用)和AsitpRequest。在我找到的这些页面中,没有显示当控制器操作执行时上传的文件将以何种形式出现。它是Ruby文件对象还是Tempf

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

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

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

该后端应用程序目前正在运行Rails2.3.10,并且很快(在接下来的几周内)可能会转换为Rails3

谢谢,
Craig

ObjectiveResource本机不支持文件上载。请尝试将ASIHTTPRequest用于以下代码段:

NSURL *url = [NSURL URLWithString:@"http://localhost:3000/file"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Sample" forKey:@"name"];
[request setFile:... forKey:@"file"];
[request startSynchronous];
有关更多详细信息,请参阅示例页面(发送数据)

文章将被编码为标准的多部分表单文章(就像它来自HTML表单一样)。如果你用回形针来储存你上传的东西,神奇的事情就会发生

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];