iOS 调用系统文件夹上传文件至服务器

前提:UIDocumentPicker,AFNetWorking

1、注册

注册代理

2、代理回调

UIDocumentPickerDelegate的- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray <NSURL *>*)urls API_AVAILABLE(ios(11.0))方法里面处理回调事件

#pragma mark - UIDocumentPickerDelegate

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {

    //获取授权

    WeakSelf

    BOOL fileUrlAuthozied = [urls.firstObject startAccessingSecurityScopedResource];

    if(fileUrlAuthozied) {

        NSFileCoordinator *fileCoordinator = [[NSFileCoordinator alloc] init];

        __block NSError*error;

        [fileCoordinator coordinateReadingItemAtURL:urls.firstObject options:0 error:&error byAccessor:^(NSURL *newURL) {

            // 读取文件

            NSString*fileName = [newURLlastPathComponent];

            NSData *fileData = [NSData dataWithContentsOfURL:newURL options:NSDataReadingMappedIfSafe error:&error];

            NSString *newNameStr = [fileName stringByRemovingPercentEncoding];

            NSArray *fileArray = [newNameStr componentsSeparatedByString:@"."];

            if(error) {

                // 出错

            }else{

                // 上传

                NSString *mimeType = [NSString stringWithFormat:@"file/%@",fileArray.lastObject];

                // 调用AFN,上传文件到自己的服务器

              [ASLNetToolEngine uploadFileWithFileData:fileData fileName:fileName mimeType:mimeType completionHandle:^(ResponseModel*response) {

                    if(response.code==0) {

                     // 上传成功

                     }else{

                     // 上传失败

                    }

                } errorHandle:^(NSError*error) {


                }];

            }

            [weakSelf dismissViewControllerAnimated:YES completion:NULL];

        }];

        [urls.firstObject stopAccessingSecurityScopedResource];

    } else {

        //授权失败

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容