开发者社区> 问答> 正文

iOS 利用http上传图片出错

你好,我根据后台返回的oss_access_key_id,url,policy,signature,做post请求,但是请求出错,实在不知道问题出在哪里

下面是代码片段:

  • (void)postOSSImageKeybucketName:(NSString )oss_access_key_id url:(NSString )url policy:(NSString )policy Signature:(NSString )signature{

    if (_currentImg == nil || !_currentImg) {

    return;

    }
    //2. 图片名字
    NSString *fileName = [ShareMethod ret20bitString];
    fileName = [fileName stringByAppendingString:@".jpg"];
    //3. 图片二进制文件
    NSData *imagedata = UIImageJPEGRepresentation(_currentImg, 0.00001);
    //4. 发起网络请求
    MySessionManager *manager = [MySessionManager manager];
    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
    [dic setValue:fileName forKey:@"key"];
    [dic setValue:oss_access_key_id forKey:@"OSSAccessKeyId"];
    [dic setValue:policy forKey:@"policy"];
    [dic setValue:signature forKey:@"Signature"];
    [dic setValue:imagedata forKey:@"file"];
    // [dic setValue:fileName forKey:@"MyFilename.jpg"];

// [dic setValue:@"200" forKey:@"success_action_status"];

[manager POST:url parameters:dic constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    [formData appendPartWithFileData:imagedata name:fileName fileName:fileName mimeType:@"image/jpeg"];

} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
    NSLog(@"%@",responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
    NSLog(@"++++%ld",(long)response.statusCode);
}];

}

展开
收起
迪迪控 2017-11-04 14:31:39 3438 0
1 条回答
写回答
取消 提交回答
  • // 应该是第三步 图片转成二进制文件出现问题 改为下边的写法 判断image是否是png格式的
    if (UIImagePNGRepresentation(image) == nil) {

    imageData = UIImageJPEGRepresentation(image, 1);

    } else {

    imageData = UIImagePNGRepresentation(image);

    }

    2019-07-17 21:42:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载