iphone/ipadから.netサービスに画像を投稿したい.現在ASIFormDataRequestを使用していますが、エラーが発生しています.
「リクエスト形式が無効です: multipart/form-data; charset=utf-8;boundary=0xKhTmLbOuNdArY.」
このエラーを解決するのを手伝ってください。ありがとうございました
-(void)uploadFile{
NSURL *url = [NSURL URLWithString: photoUploadURLString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setUseKeychainPersistence:YES];
//if you have your site secured by .htaccess
NSString *fileName = [NSString stringWithFormat:@"ipodfile%@.jpg",self.fileID];//your image file name
[request addPostValue:fileName forKey:@"name"];
// Upload an image
NSData *imageData = UIImageJPEGRepresentation([UIImage imageName:fileName]) // your image
[request setData:imageData withFileName:fileName andContentType:@"image/jpeg" forKey:@"userfile"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(uploadRequestFinished:)];
[request setDidFailSelector:@selector(uploadRequestFailed:)];
[request startAsynchronous];
}
- (void)uploadRequestFinished:(ASIHTTPRequest *)request{
NSString *responseString = [request responseString];
NSLog("Upload response %@", responseString);
}
- (void)uploadRequestFailed:(ASIHTTPRequest *)request{
NSLog(@" Error - Statistics file upload failed: \"%@\"",[[request error] localizedDescription]);
}
私も同じ問題を抱えていました..同じエラー..
しかし、私はいくつかの異なるアプローチでそれを解決しました。
基本的に、.Net Webサービスは、イメージがbinary
またはbyte[]
配列として提供されることを想定しています。
UIImage
をbyte[]
使用ASIFormDataRequest
してサーバーに送信する方法はありません。
しかし、NSURLRequest
それはより良い方法で行われます。私たちはいつもより少し掘り下げる必要があります。
私はiOS用のsoapフレームワークを使った経験Sudzc
があります。これはオープンソースではありませんが、無料で入手できます。
あなたがする必要があるのは、
これにより、iOSプロジェクトを含むzipファイルが取得されます。プロジェクトを開いGenerated
たら、必要なものがすべて表示されているディレクトリを確認します。
ASIFormDataRequest
このようにデータを設定してみてください
NSData *imgData = UIImagePNGRepresentation(img);
[request addData:imgData withFileName:@"FILENAME" andContentType:@"image/jpg" forKey:@"YOUR KEY"];
リクエストはどこですかASIFormDataRequest
ハッピーコーディング。