开发者社区> 问答> 正文

ios 利用http post上传图片失败 报错400

您好, 我从后台获取了policy,signature,oss_access_key_id,url这四个参数,然后尝试用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:@"upload" 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 09:39:29 4838 0
1 条回答
写回答
取消 提交回答
  • 阿里前端弘树,关注 Web 前端技术,折腾过前端工程化、React Native、Hybrid 架构,目前在数据分析与数据可视化的学习道路上

    你需要把报错的日志或者错误信息贴出来,不然大家无法帮到你

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

相关电子书

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