iOS アプリ用の API を作成したので、アプリはcsv
ファイルを API に送信し、ファイルをサーバーに保存できます。Rails アプリ内で添付ファイルを処理するために refile gem を使用しています。AFNetworking を使用して、iOS アプリ内からレール アプリにファイルを送信しています。
ファイルをcurl経由でAPIに送信するとcsv_file_id
、DBの適切な列/フィールドが埋められます。ただし、iOS 内のアプリからファイルを送信するとcsv_file_id
、null
. ファイルを取得するには、トークンがcsv_file_id
フィールドに存在する必要があります。つまり、refile ドキュメントに従って、ファイルに対して GET 要求を実行します。
私の質問はcsv_file_id
、iOS アプリ内からフィールドに入力するにはどうすればよいですか?
iOS アプリのコード例
// begin uploading CSV file using AFNetworking
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *data = [NSData dataWithContentsOfFile:filename];
// string to hold the "csv_file_id"
NSString *csv_file_id = [NSString stringWithFormat:@""];
// try adding params to the POST request, params are required for placing the filename in the "csv_file_filename" column of the rails DB.
NSDictionary *params = @{@"csv_file_filename":justFilename,@"csv_file_id":csv_file_id};
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"csv_files" parameters:params constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:data name:[NSString stringWithFormat:@"KegCop-users-%@.csv",idfv] fileName:[NSString stringWithFormat:@"KegCop-users-%@.csv",idfv] mimeType:@"text/csv"];
}];
上記のコード例は""
フィールドcsv_file_id
に入力しますが、これは機能しますが、ファイルを取得するための有効な URL を生成できません。