获取沙盒中的Documents地址的代码。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
- 1
- 2
- 1
- 2
假设视频文件的网络url为http://www.abc.com/test.mp4,下载到iOS沙盒中的文件名为test.mp4。
利用如下代码便可实现视频文件的下载和存储, 注意在生成网络url的时候使用NSURL的类方法URLWithString,这样才可以请求网络url,使用fileURLWithPath用来访问本地文件。这是我遇到的一个不大不小的坑,浪费了不少时间。
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSString *fullPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"test.mp4"];
NSURL *url = [NSURL URLWithString:@"http://www.abc.com/test.mp4"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { return [NSURL fileURLWithPath:fullPath]; } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { }]; [task resume];