0

ASIFormDataRequest を使用してサーバーに画像をアップロードする方法は? 挿入中にエラーが表示されない画像をアップロードしようとしました。そして、私のリクエストでは、完了したメソッドが成功として応答を取得しています。問題は、挿入したデータを取得すると、挿入した画像を取得できないが、画像パスも取得していることです。

ここに私のコードがあります

NSString *globalurl =[[NSUserDefaults standardUserDefaults]valueForKey:@"Global_Url"];

NSString *urlStr=[NSString stringWithFormat:@"%@/InsertUserInfo?User_Name=%@&User_Pwd=%@&User_FName=%@&User_LName=%@&User_Mail=%@&User_Phno=%@&User_Address=%@&User_Dob=%@&Ic_No=%@&User_Active=%@&User_Questions=%@&User_Ans=%@",globalurl,usernameTxtFld.text,pwdTxtFld.text,firstName.text,lastName.text,email.text,phonNO.text,address.text,dateOfbirth.text,nricNo.text,@"10001",@"",@""];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request addData:dataImage withFileName:@"Image.png" andContentType:@"image/png" forKey:@"photo"];
//check if passedData is nil
if (dataImage == nil)
{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"title:iDnil" message:@"nil" delegate:nil cancelButtonTitle:@"fgff" otherButtonTitles:@"erer", nil];
    [alert show];
}
[request startAsynchronous];

 -(void)requestFinished:(ASIHTTPRequest *)request {

NSString *receivedString = [request responseString];
NSLog(@"received messge %@",receivedString);
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:receivedString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
 }


      - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
     {
dataImage = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],1);
NSLog(@"dict is %@",info);
UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];

   [self dismissModalViewControllerAnimated:YES];
}
4

2 に答える 2

0

投稿で説明されているよう[request setFile:@"YOUR IMAGE FILE PATH" forKey:@"photo"]; に代わりに使用できます 。それは私にとって魅力のように機能しました:-)[request addData:dataImage withFileName:@"Image.png" andContentType:@"image/png" forKey:@"photo"];

于 2013-09-27T12:17:42.377 に答える
0

このリンクで、テキストファイル、画像、ビデオ、キュー内の画像のアップロード、GitHub へのビデオを実行するサンプル アプリケーションをアップロードしました。見てみるのもいいかもしれません。

ASI-http-request には、画像ファイルをディスクからすぐにストリーミングする最適化オプションがあります。これは、このライブラリで見た中で最高です。ASIFormDataRequest を作成するには、以下のコード スニペットを使用することを検討してください。

    // Initilize Variables
    NSURL * url = [NSURL URLWithString:IMAGE_POST_URL];

    // Add Image
    NSString *path = [[NSBundle mainBundle]pathForResource:@"image1" ofType:@"jpg"];

    // Get Image
    NSData *imageData = [[NSData alloc]
                         initWithContentsOfFile:path];

    // Return if there is no image
    if(imageData != nil){

        //Request-1
        ASIFormDataRequest * request1;
        [request1 setTag:201];

        request1 = [[ASIFormDataRequest alloc] initWithURL:url];
        [request1 setPostValue:@"ID = 201" forKey:@"image_upload"];
        [request1 setFile:path forKey:@"image1_file"];
        [request1 setDelegate:self];
        [request1 setDidFinishSelector:@selector(imageUploadDidFinish:)];
        [request1 setDidFailSelector:@selector(imageUploadDidFail:)];
        [request1 setTimeOutSeconds:500];
        [request1 setShouldStreamPostDataFromDisk:YES];
}
于 2013-09-27T12:33:44.670 に答える