一直上传不成功,搜了N遍,尝试了N遍,终于找到了一个相关的,如下:
你可以看一下你传到后台后的数据,看看是不是收到的数据跟你上传的数据不一样。base64编码之后,data里面会含有一些“+”,而“+”通过post传到后台后,会被转换成空格。这样后台就接收不到图片了。你可以让后台将收到数据的空格替换成“+”,或者你看看我写的一个解决方法的
- NSMutableDictionary *dic = [NSMutableDictionary dictionary];
- [dic setValue:self.foodNameField.text forKey:@"foodName"];
- [dic setValue:[GlobalClass shared].user.userid forKey:@"foodUser"];
- [dic setValue:self.foodAddressTextview.text forKey:@"foodAddr"];
- [dic setValue:self.foodPriceField.text forKey:@"foodPrice"];
- [dic setValue:self.recommendedReasonsTextview.text forKey:@"foodRecommend"];
- <span style="color:#ff0000;">NSData *data = [NSData dataWithContentsOfFile:self.foodImagePath];
- NSString *baseStr = [data base64Encoding];
- NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
- (CFStringRef)baseStr,
- NULL,
- CFSTR(":/?#[]@!$&’()*+,;="),
- kCFStringEncodingUTF8);
- [dic setValue:baseString forKey:@"foodPicBig"];</span>
- NSString *jsonStr = [GlobalClass DataTOjsonString:dic];
- NSMutableDictionary *mudic = [NSMutableDictionary dictionaryWithObjectsAndKeys:jsonStr,@"data", nil nil];
- NSLog(@"参数:%@\n%@",jsonStr,mudic);
- //图片
- NSDictionary *imageDic;
- if (self.foodImagePath) {
- imageDic = [NSDictionary dictionaryWithObjectsAndKeys:self.foodImagePath,@"foodPicBig", nil nil];
- }
- [MBProgressHUD showHUDAddedTo:self.mainScrollview animated:YES];
- NetRequest *request = [NetRequest requestWithTarget:self SuccessedMethod:@selector(recommendFoodSuccess:) FailedMethod:@selector(failed:)];
- [request postWithPath:RecommendFoodUrl params:mudic ImgData:nil ssl:NO];
- NSString *baseStr = [imgData base64Encoding];
- NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
- (CFStringRef)baseStr,
- NULL,
- CFSTR(":/?#[]@!$&’()*+,;="),
- kCFStringEncodingUTF8);
- [urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];