ios - AFNetworking文件上传

标签 ios iphone xcode

我正在尝试使用 AFNetworking 上传文件,它可以在 iOS 模拟器上运行,但不能在真实设备上运行,我尝试了 2 种不同的方式,但相同。

有人可以帮我解决这个问题吗 非常感谢。

这是第一个代码

NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *dir = [paths objectAtIndex:0];
NSString *mp3File = [dir stringByAppendingPathComponent:@"Mp3File.mp3"];


NSData* myData = [mp3File dataUsingEncoding:NSUTF8StringEncoding];

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"nid": nid, @"uid": [NSString stringWithFormat:@"%@", [appSet objectForKey:@"userid"]]};
AFHTTPRequestOperation *op = [manager POST:@"http://192.168.1.103/sample_Files/mp3.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

    [formData appendPartWithFileData:myData name:@"userfile" fileName:[NSString stringWithFormat:@"%@.mp3", dateString] mimeType:@"audio/mpeg"];

} success:^(AFHTTPRequestOperation *operation, id responseObject) {

     NSLog(@"YESSS UPLOADED");

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"%@", error);
}];

[op start];

这是另一个

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"nid": nid, @"uid": [NSString stringWithFormat:@"%@", [appSet objectForKey:@"userid"]]};
    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"Mp3File.mp3"];
    NSURL *fileURL = [NSURL fileURLWithPath:filePath];

    AFHTTPRequestOperation *op =  [manager POST:@"http://192.168.1.103/sample_Files/mp3.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        NSError *error;
        BOOL success = [formData appendPartWithFileURL:fileURL name:@"userfile" fileName:[NSString stringWithFormat:@"%@.mp3", dateString] mimeType:@"audio/mpeg" error:&error];
        if (!success)
            NSLog(@"appendPartWithFileURL error: %@", error);

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);

    }];
    [op start];

最佳答案

据我所知,它看起来是正确的。

您是否在 FAILURE 上设置了断点以查看 NSERROR 响应是什么?

这是一个示例 URL,它发布了一个非常相似的解决方案。

Uploading image with AFNetworking 2.0

关于ios - AFNetworking文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860867/

相关文章:

objective-c - 将 NSString 与 AVAudioPlayer 一起使用

objective-c - 检索 iTunes 轨道图稿图像时出现错误。有时它说这不是图像

ios - 即使设置委托(delegate)后协议(protocol)也不起作用

objective-c - xcode:如何隐藏此警告?

iphone - 在 NSTimer 中播放 AVAudioPlayer,没有内存泄漏?

ios - 如何使用 Xcode 6 在真实的 iPhone 上测试 App?

iphone - 使用 iPhone 应用程序进行 Xcode 调试缓慢且滞后

ios - 如何在 XCode5 中将 GIF 图片添加到 Assets 目录

ios - RubyMotion 未加载 AudioToolbox 框架

javascript - LocalStorage 无法在 iPhone 上运行 - 无法在私密浏览中使用