IOS开发 文件下载 文件预览
来源:互联网 发布:数据库的基本知识 编辑:程序博客网 时间:2024/05/18 00:51
-(void)downloadFile:(NSString *)UrlAddress andWith:(NSString *)styleName11
{
//UrlAddress 是下载链接 styleName11 是文件名+格式
NSURLRequest *request = [NSURLRequestrequestWithURL:[NSURLURLWithString:UrlAddress]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperationalloc]initWithRequest:request];
//获取在当前程序中NSDocumentDirectory文件目录
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
//拼接上文件名 就是文件将要下载到 Document 的地址
NSString *path = [[pathsobjectAtIndex:0]stringByAppendingPathComponent:[NSStringstringWithFormat:@"%@",styleName11]];
operation.outputStream = [NSOutputStreamoutputStreamToFileAtPath:pathappend:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responseObject) {
} failure:^(AFHTTPRequestOperation *operation,NSError *error) {
NSLog(@"Error: %@", error);
}];
[operation setDownloadProgressBlock:^(NSUInteger bytesRead,longlong totalBytesRead,longlong totalBytesExpectedToRead) {
NSLog(@"Download = %f", (float)totalBytesRead / totalBytesExpectedToRead); // 下载进度
}];
[operation start];
}
UIDocumentInteractionController
//这个类平常的办公文件格式都可以打开 比如 jpg png txt doc pdf
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
//获取下载到 NSDocumentDirectory下的文件
NSString *path = [NSStringstringWithFormat:@"%@/%@",[pathsobjectAtIndex:0],@"text.doc"];
//但是 如果直接打开图片的话 会显示图片信息 但是不显示图片内容 打开txt格式的话 会乱码 所以在打开之前进行编码 调用下面的方法
[selftransformEncodingFromFilePath:path];
//编码成功之后 再打开
_documentInteraction = [UIDocumentInteractionControllerinteractionControllerWithURL:[NSURLfileURLWithPath:path]];
[_documentInteraction setDelegate:self];
[_documentInteractionpresentPreviewAnimated:YES];
#pragma mark - 在打开之前进行编码否则 text文件会乱码
- (void)transformEncodingFromFilePath:(NSString *)filePath{
//调用上述转码方法获取正常字符串
NSString *body = [selfexamineTheFilePathStr:filePath];
//转换为二进制
NSData *data = [bodydataUsingEncoding:NSUTF16StringEncoding]; //覆盖原来的文件
[data writeToFile:filePath atomically:YES]; //此时在读取该文件,就是正常格式啦
}
- (NSString *)examineTheFilePathStr:(NSString *)str{
NSStringEncoding *useEncodeing = nil; //带编码头的如utf-8等,这里会识别出来
NSString *body = [NSStringstringWithContentsOfFile:strusedEncoding:useEncodeingerror:nil];
//识别不到,按GBK编码再解码一次.这里不能先按GB18030解码,否则会出现整个文档无换行bug
if (!body) {
body = [NSStringstringWithContentsOfFile:strencoding:0x80000632error:nil];
} //还是识别不到,按GB18030编码再解码一次.
if (!body) {
body = [NSStringstringWithContentsOfFile:strencoding:0x80000631error:nil];
}
return body;
}
//代理方法需要加上- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
return self;
}
- IOS开发 文件下载 文件预览
- IOS录像文件预览
- ios-文件预览-QLPreViewController
- ios文件预览
- iOS开发之文件下载
- 指定文件下载及预览
- 文件的上传,下载,预览
- ios开发总结之文件下载(小文件下载)
- IOS开发总结之文件下载(大文件下载)
- iOS开发下载文件速度计算
- iOS开发下载文件速度计算
- iOS开发下载文件速度计算
- iOS开发下载文件速度计算
- 【iOS开发-网络】关于大文件下载
- iOS开发下载文件速度计算(刚刚)
- ios开发之-从服务器下载文件
- iOS开发 大文件下载封装
- iOS开发 使用NSURLConnection实现下载文件
- 汇编指令详解
- 学习笔记20151211——AXI4 STREAM DATA FIFO
- Android自定义View的实现方法
- SpringMVC中使用Interceptor拦截器
- 深入理解java异常处理机制
- IOS开发 文件下载 文件预览
- 开始iOS 7中自动布局教程
- Java 之 文件读写及性能比较总结
- POJ-3062
- Sql Server中的日期与时间函数
- C#发送Email邮件三种方法的总结
- fragment之基本使用
- zhphp framework (十八) session 抽象接口
- ajax加载的元素无法绑定事件问题解决