IOS文件下载

举报
清雨小竹 发表于 2022/09/25 00:38:09 2022/09/25
【摘要】 iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下如何结合asp.net webservice实现文件上传下载。  首先,让我们看下文件下载。 这里我们下载cnblogs上的一个zip文件。使用NSURLRequest+NSURLConnection可以很方便的实现这个功能。在asp.net webserv...

iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下如何结合asp.net webservice实现文件上传下载。 
首先,让我们看下文件下载。

这里我们下载cnblogs上的一个zip文件。使用NSURLRequest+NSURLConnection可以很方便的实现这个功能。在asp.net webservice中可以将文件的地址返回到iOS系统,iOS系统再通过这个url去请求下载该文件。这里为了简单起见,直接将url写道代码里面了。我们可以使用两种方式去下载文件。

1、同步下载文件:


  
  1. NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
  2. NSURL *url = [NSURL URLWithString:urlAsString];
  3. NSURLRequest *request = [NSURLRequest requestWithURL:url];
  4. NSError *error = nil;
  5. NSData *data = http://www.cnblogs.com/zhwl/archive/2012/07/13/[NSURLConnection sendSynchronousRequest:request
  6. returningResponse:nil
  7. error:&error];
  8. /* 下载的数据 */
  9. if (data != nil){
  10. NSLog(@"下载成功");
  11. if ([data writeToFile:@"UIWebViewDemo.zip" atomically:YES]) {
  12. NSLog(@"保存成功.");
  13. }
  14. else
  15. {
  16. NSLog(@"保存失败.");
  17. }
  18. } else {
  19. NSLog(@"%@", error);
  20. }


2.异步下载


  
  1. DownLoadingViewController.h
  2. // DownLoadingViewController.h
  3. // DownLoading
  4. //
  5. // Created by skylin zhu on 11-7-30.
  6. // Copyright 2011年 mysoft. All rights reserved.
  7. //
  8. #import
  9. @interface DownLoadingViewController : UIViewController {
  10. NSURLConnection *connection;
  11. NSMutableData *connectionData;
  12. }
  13. @property (nonatomic,retain) NSURLConnection *connection;
  14. @property (nonatomic,retain) NSMutableData *connectionData;
  15. @end
  16. DownLoadingViewController.m
  17. // DownLoadingViewController.m
  18. // DownLoading
  19. //
  20. // Created by skylin zhu on 11-7-30.
  21. // Copyright 2011年 mysoft. All rights reserved.
  22. //
  23. #import "DownLoadingViewController.h"
  24. @implementation DownLoadingViewController
  25. @synthesize connection,connectionData;
  26. - (void)dealloc
  27. {
  28. [super dealloc];
  29. }
  30. - (void)didReceiveMemoryWarning
  31. {
  32. // Releases the view if it doesn't have a superview.
  33. [super didReceiveMemoryWarning];
  34. // Release any cached data, images, etc that aren't in use.
  35. }
  36. #pragma mark - View lifecycle
  37. // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
  38. - (void)viewDidLoad
  39. {
  40. [super viewDidLoad];
  41. //文件地址
  42. NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
  43. NSURL *url = [NSURL URLWithString:urlAsString];
  44. NSURLRequest *request = [NSURLRequest requestWithURL:url];
  45. NSMutableData *data = http://www.cnblogs.com/zhwl/archive/2012/07/13/[[NSMutableData alloc] init];
  46. self.connectionData = http://www.cnblogs.com/zhwl/archive/2012/07/13/data;
  47. [data release];
  48. NSURLConnection *newConnection = [[NSURLConnection alloc]
  49. initWithRequest:request
  50. delegate:self
  51. startImmediately:YES];
  52. self.connection = newConnection;
  53. [newConnection release];
  54. if (self.connection != nil){
  55. NSLog(@"Successfully created the connection");
  56. } else {
  57. NSLog(@"Could not create the connection");
  58. }
  59. }
  60. - (void) connection:(NSURLConnection *)connection
  61. didFailWithError:(NSError *)error{
  62. NSLog(@"An error happened");
  63. NSLog(@"%@", error);
  64. }
  65. - (void) connection:(NSURLConnection *)connection
  66. didReceiveData:(NSData *)data{
  67. NSLog(@"Received data");
  68. [self.connectionData appendData:data];
  69. }
  70. - (void) connectionDidFinishLoading
  71. :(NSURLConnection *)connection{
  72. /* 下载的数据 */
  73. NSLog(@"下载成功");
  74. if ([self.connectionData writeToFile:@"UIWebViewDemo.zip" atomically:YES]) {
  75. NSLog(@"保存成功.");
  76. }
  77. else
  78. {
  79. NSLog(@"保存失败.");
  80. }
  81. /* do something with the data here */
  82. }
  83. - (void) connection:(NSURLConnection *)connection
  84. didReceiveResponse:(NSURLResponse *)response{
  85. [self.connectionData setLength:0];
  86. }
  87. - (void) viewDidUnload{
  88. [super viewDidUnload];
  89. [self.connection cancel];
  90. self.connection = nil;
  91. self.connectionData = http://www.cnblogs.com/zhwl/archive/2012/07/13/nil;
  92. }
  93. @end

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8424164

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。