因最近项目上提出上传iPhone文件的需求,所以开始探索该方面的实现流程,凭借着直觉,进行了简单的代码探索,没想到真的有UIDocument相关的类,就误打误撞的开始了探索旅程~
下面是简单实现,具体的需要参照项目实际需求进行开发
首先需要导入代理,因为我们需要通过回调来获取我们所选取文件的路径<UIDocumentPickerDelegate>
其次就是实现了,直接上代码
UIDocumentPickerViewController *documentPickerViewController =
//此处为iOS14以前的实现方法,官方建议iOS14之后使用 initForOpeningContentTypes:asCopy: 或 initForOpeningContentTypes: instead 其中的一个方法
[[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.item"] inMode:UIDocumentPickerModeOpen];
documentPickerViewController.delegate=self;
[selfpresentViewController:documentPickerViewControlleranimated:YEScompletion:nil];
代理实现获取到的是路径,如需上传则需要将文件转换为二进制上传
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
NSData*fileData = [NSDatadataWithContentsOfFile:urls[0]];
NSLog(@"获取到的文件二进制数据:%@",fileData);
}
网友评论