【发布时间】:2016-12-29 08:38:58
【问题描述】:
图像未上传到 php 服务器 ios 10 它给出的错误为
您没有选择要上传的文件。
这是代码
- (IBAction)changeProfilePic:(id)sender {
[[sharedClass sharedInstance]showprogressfor:@"Please wait"];
NSString *urlString = [ NSString stringWithFormat:@"http://domain.com/as/web_services/change_user_image?user_id=%@",self.useridString];
UIImage *image= profile_Image;
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
request.timeoutInterval = 10.0f;
request.HTTPMethod = @"POST";
NSString *boundary = @"011000010111000001101001";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary, nil];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data; name=\"projectId\"\r\n\r\n"]dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
NSData *stringData = [@"Content-Disposition: form-data;\
name=\"project\";\
fileName=\"photo.jpeg\"\r\n"
dataUsingEncoding:NSUTF8StringEncoding];
[body appendData:stringData];
[body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:imageData];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSDictionary *statusDict = [[NSDictionary alloc]init];
statusDict = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
NSString *message = [statusDict valueForKey:@"msg"];
[SVProgressHUD dismiss];
NSLog(@" mesaage is %@", message);
}
【问题讨论】:
-
将链接中的 http 更改为 https
-
我的后端团队只使用 http 提供服务,我该如何改变它。
-
您检查过您的网址吗?开头有一个空格,您应该检查用户ID(如果它是一个字符串)没有任何特殊字符。
-
@Luca D'Alberti 我也删除了那个空格,我的用户 ID 也不包含任何特殊字符。它给出消息
您没有选择要上传的文件。
标签: ios objective-c cocoa-touch image-uploading nsurlsession