【问题标题】:Download a file from a specific link and store it in device iOS?从特定链接下载文件并将其存储在设备 iOS 中?
【发布时间】:2014-10-09 20:26:02
【问题描述】:
我目前正在开发一个 iOS 应用程序,其中显示了下载 Excel 工作表的下载链接。我想将该下载的文件保存到我的 iOS 设备上默认存储所有下载的应用程序的位置,以便我以后可以通过我的设备访问它而无需打开应用程序。
就像在 android 设备中一样,文件存储在我的文件中,我们以后可以从中访问它们。
有什么方法可以在 iOS 中实现这一点。
【问题讨论】:
标签:
ios
objective-c
iphone
ios7
ios6
【解决方案1】:
您可以直接存储在文档目录中,如下所示
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"tempfile"]]; // It may change according to your need
NSError * error = nil;
[imageData writeToFile:path options:NSDataWritingAtomic error:&error];
这里,imageData是我要写入Document目录的数据
通过保存在文档目录中,您可以从那里获取它
【解决方案2】:
NSString * str = "Your Url"
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:str]
cachePolicy:NSURLCacheStorageAllowed
timeoutInterval:20];
NSURLResponse *response;
NSError *error;
NSData * data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
[data writeToFile:filePath atomically:YES];
【解决方案3】:
你可以试一试
// NSData downloads any file from an URL
NSURL* url = [NSURL URLWithString:@"http://192.168.0.8/PoweredByMacOSX.gif"];
NSData* data = [NSData dataWithContentsOfURL:url];
// get the documents directory
NSArray* pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString* documentsDir = documentsDirectory = [pathArray objectAtIndex:0];
NSString* localFile =
[documentsDir stringByAppendingPathComponent:@"webfile.png"];
// write the downloaded file to documents dir
[data writeToFile:localFile atomically:YES];