开发者社区> 问答> 正文

用nsurlsessionuploadtask上传图片失败

NSString *uploadPicURLStr = @"/jf/platform/upload/appUpload";
    NSString *urlStr = [NSString stringWithFormat:@"%@%@",BASEURL,uploadPicURLStr];
    NSLog(@"urlstr:%@",urlStr);
    NSURL *url = [NSURL URLWithString:urlStr];
//    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-type"];

    [request addValue:@"text/html" forHTTPHeaderField:@"Accept"];
    [request setHTTPMethod:@"POST"];
    [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
    [request setTimeoutInterval:30];
    NSLog(@"request:%@",request);

    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
//    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionUploadTask *uploadTask   = [session uploadTaskWithRequest:request fromData:imgData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//        NSLog(@"data:%@",data);
   NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
   NSLog(@"data str:%@",string);
   NSLog(@"success:%@",response);
   NSLog(@"error:%@",error);
    }];
    [uploadTask resume];

imgdata是传过来的nsdata图片数据,
报了个:Separation boundary was not specified 错。
请问怎么破?
更新:打印了上传的数据,

 -(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend{
    NSLog(@"already sent:%lld",bytesSent);
    NSLog(@"totoal to send:%lld",totalBytesSent);
    NSLog(@"expected send:%lld",totalBytesExpectedToSend);
}

输出结果如下:

 2015-06-09 10:42:29.013 Purchaser[1492:52094] already sent:32768
 2015-06-09 10:42:29.013 Purchaser[1492:52094] totoal to send:32768
 2015-06-09 10:42:29.013 Purchaser[1492:52094] expected send:113761
 2015-06-09 10:42:29.013 Purchaser[1492:52097] already sent:32768
 2015-06-09 10:42:29.014 Purchaser[1492:52097] totoal to send:65536
 2015-06-09 10:42:29.014 Purchaser[1492:52097] expected send:113761
 2015-06-09 10:42:29.014 Purchaser[1492:52094] already sent:32768
 2015-06-09 10:42:29.014 Purchaser[1492:52094] totoal to send:98304
 2015-06-09 10:42:29.015 Purchaser[1492:52094] expected send:113761
 2015-06-09 10:42:29.015 Purchaser[1492:52097] already sent:15457
 2015-06-09 10:42:29.015 Purchaser[1492:52097] totoal to send:113761
 2015-06-09 10:42:29.015 Purchaser[1492:52097] expected send:113761

看起来是传出去了,但是服务器那边没收到,头疼。。。。

展开
收起
爵霸 2016-03-13 09:27:26 2300 0
1 条回答
写回答
取消 提交回答
  • DavLockDB "/usr/var/DavLock"
    
    Alias /uploads "/usr/uploads"
    
    
    Dav On
    
    Order Allow,Deny
    Allow from all
    
    #用户的授权类型
    AuthType Basic
    AuthName DAV-upload
    
    # You can use the htdigest program to create the password database:
    #   htdigest -c "/usr/user.passwd" DAV-upload admin
    # 用户密码文件
    AuthUserFile "/usr/webdav.passwd"
    AuthDigestProvider file
    
    # Allow universal read-access, but writes are restricted
    <LimitExcept GET OPTIONS>
        require user admin
    </LimitExcept>
    2019-07-17 19:01:44
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载