আমি জানি এই প্রশ্নটি পুরানো, তবে শেষ দিনগুলিতে এই একই প্রশ্নের সমাধানের জন্য আমি পুরো ওয়েব অনুসন্ধান করেছিলাম। আমার কাছে গ্রেইস আরআরএসটি ওয়েব সার্ভিস এবং আইফোন ক্লায়েন্ট রয়েছে যা ছবি, শিরোনাম এবং বিবরণ প্রেরণ করে।
আমি জানি না আমার পদ্ধতির সেরা কিনা, তবে এটি এত সহজ এবং সহজ।
আমি UIImagePickerController ব্যবহার করে একটি ছবি তুলি এবং ছবির ডেটা প্রেরণের জন্য অনুরোধের শিরোনাম ট্যাগ ব্যবহার করে NSData সার্ভারে প্রেরণ করি।
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"myServerAddress"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:UIImageJPEGRepresentation(picture, 0.5)];
[request setValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"myPhotoTitle" forHTTPHeaderField:@"Photo-Title"];
[request setValue:@"myPhotoDescription" forHTTPHeaderField:@"Photo-Description"];
NSURLResponse *response;
NSError *error;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
সার্ভারের পাশে, আমি কোডটি ব্যবহার করে ছবিটি পাই:
InputStream is = request.inputStream
def receivedPhotoFile = (IOUtils.toByteArray(is))
def photo = new Photo()
photo.photoFile = receivedPhotoFile //photoFile is a transient attribute
photo.title = request.getHeader("Photo-Title")
photo.description = request.getHeader("Photo-Description")
photo.imageURL = "temp"
if (photo.save()) {
File saveLocation = grailsAttributes.getApplicationContext().getResource(File.separator + "images").getFile()
saveLocation.mkdirs()
File tempFile = File.createTempFile("photo", ".jpg", saveLocation)
photo.imageURL = saveLocation.getName() + "/" + tempFile.getName()
tempFile.append(photo.photoFile);
} else {
println("Error")
}
ভবিষ্যতে আমার সমস্যা আছে কিনা তা আমি জানি না, তবে এখন উত্পাদন পরিবেশে ভাল কাজ করছে।