douxing1353 2016-03-18 04:32
浏览 70
已采纳

无法在IOS上的服务器上上传图像

I am not able to upload images on php server from my IOS app.

Here is my code..

NSString *urlString = @"My URl";

 NSURL* requestURL = [NSURL URLWithString:urlString];

// setting up the request object now

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;

 [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];


    // NSString *boundary = @"---------------------------147378098314876653456641449";
    NSString *BoundaryConstant = @"----------V2ymHFg03ehbqgZCaKO6jy";

    NSString* FileParamConstant = @"profileimage";


    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",BoundaryConstant];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        ///---

    // post body
    NSMutableData *body = [NSMutableData data];

    // add params (all params are strings)
    for (NSString *param in dicSubmit)
    {
        [body appendData:[[NSString stringWithFormat:@"--%@
", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"

", param] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"%@
", [dicSubmit objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]];
    }


    NSData *imageData = UIImageJPEGRepresentation(self.imgprofile.image, 0.0f);

    if (imageData)
    {
        [body appendData:[[NSString stringWithFormat:@"--%@
", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"editprofileimage1.png\"
", FileParamConstant] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Type: image/jpeg

" dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:imageData];
        [body appendData:[[NSString stringWithFormat:@"
"] dataUsingEncoding:NSUTF8StringEncoding]];
    }



    [body appendData:[[NSString stringWithFormat:@"--%@--
", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]];

    // setting the body of the post to the reqeust
    [request setHTTPBody:body];

    // set the content-length
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

    // set URL
    // [SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];
    [request setURL:requestURL];
    [[NSURLConnection alloc] initWithRequest:request delegate:self];
  • 写回答

1条回答 默认 最新

  • doudongdang4483 2016-03-18 05:56
    关注

    Try to using AFNetworking

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"your url"]];
    
            NSData *imageData = UIImagePNGRepresentation(self.m_clientPhoto.image);
    
            NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
                [dict setValue:self.nameTextField.text forKey:@"name"];
                [dict setValue:self.countryCode1 forKey:@"countrycode"];
                [dict setValue:self.phone1 forKey:@"phone"];
    
            manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
    
            AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    
    
                [formData appendPartWithFileData:imageData name:@"img" fileName:@"photo.jpg" mimeType:@"image/jpeg"];
    
            } success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
                NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
    
    
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    
                    NSLog(@"Error: %@ ***** %@", operation.responseString, error);
    
                }];
    
        [op start];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能