标签: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