-1

在我的项目中: -

1)单击相机中的图片(不要保存)。

2)显示带有 2 个按钮发布和取消的裁剪图像。发布按钮发布图像和取消按钮丢弃图像。它看起来像这样。 第二

我不知道如何发布相机捕获图像。我在互联网上搜索了很多代码,但没有找到任何可以帮助我的代码。

我尝试了这些链接上给出的代码..

第一第二第三,还有很多其他的。

我希望有人会帮助..如何发布?谢谢。

-(IBAction)sendRequest:(id)sender {

     #define DataDownloaderRunMode @"myapp.run_mode" 

        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url 
                                       cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                       timeoutInterval:60]; 

        [request setHTTPMethod:@"POST"]; 

        NSString *boundary = @"----WebKitFormBoundarycC4YiaUFwM44F6rT";

        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

        [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        NSMutableData *body = [NSMutableData data];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name="attachment[file]";
        filename="picture.png"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithString:@"Content-Type: image/png\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[NSData dataWithData:imageData]];

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [request setHTTPBody:body];

        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request 
                                                               delegate:self 
                                                               startImmediately:NO]; 

        [connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:DataDownloaderRunMode]; 

        [connection start];
}

并将其连接到发布按钮..

4

2 回答 2

3

更新:

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"picture\"; filename=\"picture.png\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

在这里,您用于存储图像的数据库字段名称picture然后在参数中写入字段名称name...

使用此代码...

于 2012-12-27T10:10:40.803 回答
2
// add image data
NSData *imageData = UIImageJPEGRepresentation(imageToPost, 1.0);
if (imageData) {
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"image.jpg\"\r\n", FileParamConstant] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:@"Content-Type: image/jpeg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:imageData];
    [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
}  

按照这个答案链接

或者您可以为此使用 ASIHTTP 类

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://URL/Service.asmx/RegisterClient?"]];
            request.delegate=self;

            encodedImage = UIImagePNGRepresentation(imgRef);

            [[NSUserDefaults standardUserDefaults]setObject:UIImagePNGRepresentation(imgRef) forKey:@"userImage"];

            str =[Base64 encode:encodedImage];

           [request setPostValue:email.text forKey:@"Email"];

            [request setPostValue:name.text forKey:@"FName"];
            [request setPostValue:str forKey:@"UserImage"];
            [request setPostValue:dob.text forKey:@"dob"];
            [request setPostValue:phoneNumber.text forKey:@"Phone"];
            [request setPostValue:ggg.text forKey:@"Gender"];
            [request setPostValue:address.text forKey:@"Address"];
            [request setPostValue:interest.text forKey:@"Interest"];

            [request startAsynchronous];

ASIHTTPRequest 文档

于 2012-12-27T10:16:05.517 回答