码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 文件下载 (AFNetwork 三方框架 文件名中文字符乱码问题解决)四

时间:2015-04-13 09:40:37      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:ios简易文件下载   文件名中文乱码处理   afnetworking使用   

很久以前,就把这篇文章的andriod部分和服务器部分搞定,最近论文送审途中,于是写了几行简单的代码如下。

把AFNetwork拿来做一下。具体代码如下:

-(void)download
{
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:config];
    
    NSString *urlString = @"http:192.168.0.179:8080/Myweb/download.do";
    
   
   
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    
    NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        // 指定下载文件保存的路径
      //  NSLog(@"%@ %@", targetPath, response.suggestedFilename);
        // 将下载文件保存在缓存路径中
        NSString *cacheDir = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
        
        NSString *retStr = [response.suggestedFilename stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSLog(@"%@ \n",retStr);
        

        NSString *path = [cacheDir stringByAppendingPathComponent:retStr];
        NSURL *fileURL = [NSURL fileURLWithPath:path];
        
        
        
        return fileURL;
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        NSLog(@"%@ %@", filePath, error);
    }];
    
    [task resume];

}
1.使用NSURLRequest 创建一个request。

2.使用

NSURLSessionDownloadTask
来建立一个task。

3.文件名想使用,服务器上的名字,调用

response.suggestedFilename
即可

4.文件名中含有中文乱码,服务器端上次的代码需要作如下修改,使用URLEncoder:

修改http://blog.csdn.net/nothingl3/article/details/44409319 (已经修改)

String fileName=file.getName();
//注意这里一般都用URLEncoder的encode方法进行对文件名进行utf-8编码  
String enFileName = URLEncoder.encode(fileName, "utf-8");    
System.out.println(enFileName);
//浏览器下载
response.addHeader("Content-Disposition", "attachment;filename="+ enFileName);

5.iOS只需要将url---》为utf-8编码即可:

NSString *retStr = [response.suggestedFilename stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

iOS 文件下载 (AFNetwork 三方框架 文件名中文字符乱码问题解决)四

标签:ios简易文件下载   文件名中文乱码处理   afnetworking使用   

原文地址:http://blog.csdn.net/nothingl3/article/details/45013665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!