AFNetworking Block下载文件保存到沙盒

/**
 *  @author Jakey
 *
 *  @brief  下载文件
 *
 *  @param paramDic   附加post参数
 *  @param requestURL 请求地址
 *  @param savedPath  保存 在磁盘的位置
 *  @param success    下载成功回调
 *  @param failure    下载失败回调
 *  @param progress   实时下载进度回调
 */
- (void)downloadFileWithOption:(NSDictionary *)paramDic
                 withInferface:(NSString*)requestURL
                     savedPath:(NSString*)savedPath
               downloadSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
               downloadFailure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
                      progress:(void (^)(float progress))progress

{
    
    //沙盒路径    //NSString *savedPath = [NSHomeDirectory() stringByAppendingString:@"/Documents/xxx.zip"];
    AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
    NSMutableURLRequest *request =[serializer requestWithMethod:@"POST" URLString:requestURL parameters:paramDic error:nil];
    
//以下是手动创建request方法 AFQueryStringFromParametersWithEncoding有时候会保存
//    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestURL]];
//   NSMutableURLRequest *request =[[[AFHTTPRequestOperationManager manager]requestSerializer]requestWithMethod:@"POST" URLString:requestURL parameters:paramaterDic error:nil];
//
//    NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
//    
//    [request setValue:[NSString stringWithFormat:@"application/x-www-form-urlencoded; charset=%@", charset] forHTTPHeaderField:@"Content-Type"];
//    [request setHTTPMethod:@"POST"];
//
//    [request setHTTPBody:[AFQueryStringFromParametersWithEncoding(paramaterDic, NSASCIIStringEncoding) dataUsingEncoding:NSUTF8StringEncoding]];
    
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
    [operation setOutputStream:[NSOutputStream outputStreamToFileAtPath:savedPath append:NO]];
    [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
        float p = (float)totalBytesRead / totalBytesExpectedToRead;
        progress(p);
        NSLog(@"download:%f", (float)totalBytesRead / totalBytesExpectedToRead);
        
    }];
    
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        success(operation,responseObject);
        NSLog(@"下载成功");
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        success(operation,error);

NSLog(@"下载失败");
        
    }];
    
    [operation start];

}

//使用
- (IBAction)downloadTouched:(id)sender {
    NSString *savedPath = [NSHomeDirectory() stringByAppendingString:@"/Documents/QQ7.6.exe"];
    //    NSDictionary *paramaterDic= @{@"jsonString":[@{@"userid":@"2332"} JSONString]?:@""};
    [self downloadFileWithOption:@{@"userid":@"123123"}
                   withInferface:@"http://dldir1.qq.com/qqfile/qq/QQ7.6/15742/QQ7.6.exe"
                       savedPath:savedPath
                 downloadSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        
    } downloadFailure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
    } progress:^(float progress) {
        
    }];
}

时间: 2024-12-13 01:34:30

AFNetworking Block下载文件保存到沙盒的相关文章

IOS把文件保存进沙盒目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"a.jpg"]];   // 保存文件的名称 BOOL result = [UIIm

cell下载图片思路 – 无沙盒缓存

cell下载图片思路 – 无沙盒缓存 /** *  1.会阻塞主线程 - 影响用户体验 *  2.重复下载 - 浪费流量,浪费时间,影响用户体验 */ // 保证:1张图片只下载1次 /** * 所有的应用数据 */ @property(nonatomic,strong)NSMutableArray*apps; /** * 存放所有下载操作的队列 */ @property(nonatomic,strong)NSOperationQueue*queue; /** * 存放所有的下载操作(url是k

将图片保存到沙盒或者相册

将图片保存到沙盒或者相册: 1.保存到相册: -(void)saveImageToAlbum:(UIButton *)sender{    //将图片保存到相册中    UIImageWriteToSavedPhotosAlbum(self.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);} 2.保存到沙盒中 -(void)saveImageToSandBox:(UIButton *)sender

.net 直接输出远程文件到浏览器和下载文件保存到本机

利用了xmlhttp,实现代码比较简单具体实现如下: 首先bin文件引入,com->microsoft xml v3.0 具体代码如下: protected void Button1_Click(object sender, EventArgs e) { string FileNames = "201406251824392435.pdf", ContentType = ""; string houzhui = FileNames.Substring(File

IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法

E浏览器下载文件保存时提示 解决办法: 1.Win + R,打开运行命令,输入gpedit.msc,如图所示 2.打开计算机本地组策略编辑器:选择计算机配置-windows设置-安全设置-本地策略-安全选项.在右侧找到“用户账户控制:以管理员批准模式运行所有管理员”,双击打开,如图所示 3.双击打开,设置为“已禁用”,,点击“应用”,“确定”如图所示 4.重启电脑,上述问题就不会再出现. 原文地址:https://www.cnblogs.com/chenshc/p/11827826.html

Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)

1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件都要保存在此,例如属性文件 plist.文本文件.图像.图标.媒体资源等. 2.沙盒目录结构 通常情况下,每个沙盒包含以下目录及文件: /AppName.app 应用程序的程序包目录.由于应用程序必须经过签名,所以不能在运行时对这个目录中的内容进行修改,否则会导致应用程序无法启动. /Documen

iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)

转载请声明出处:http://blog.csdn.net/jinnchang/article/details/44828189 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件都要保存在此,例如属性文件 plist.文本文件.图像.图标.媒体资源等. 2.沙盒目录结构 通常情况下,每个沙盒包含以下目录及文件: /AppName.app 应用程序

iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)

http://blog.csdn.net/jinnchang/article/details/44828189 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件都要保存在此,例如属性文件 plist.文本文件.图像.图标.媒体资源等. 2.沙盒目录结构 通常情况下,每个沙盒包含以下目录及文件: /AppName.app 应用程序的程序包目录.由于

视频播放器边下边播(保存到沙盒,显示进度)

没怎么研究视频播放器,就在网上找了个,链接:https://github.com/835239104/KrVideoPlayerPlus 下载AFNetworking, 1.下载最新版的会报错,没有引入相关库 2.AFSecurityPolicy.m中:注释了一部分代码 #pragma mark - 这里改了 ------ #warning - 这里改了 -------- //#if !TARGET_OS_IOS && !TARGET_OS_WATCH //static NSData *