`
lizaochengwen
  • 浏览: 662191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS-实现文件上传下载

 
阅读更多
iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下使用asp.net webservice实现文件上传下载。
首先,让我们看下文件下载。
这里我们下载cnblogs上的一个zip文件。使用NSURLRequest+NSURLConnection可以很方便的实现这个功能。
同步下载文件:

     
  NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
        NSURL    *url = [NSURL URLWithString:urlAsString];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        NSError *error = nil;
        NSData   *data = [NSURLConnection sendSynchronousRequest:request
                                               returningResponse:nil
                                                           error:&error];
        /* 下载的数据 */
        if (data != nil){
            NSLog(@"下载成功");
            if ([data writeToFile:@"UIWebViewDemo.zip" atomically:YES]) {
                NSLog(@"保存成功.");
            }
            else
            {
                NSLog(@"保存失败.");
            }
        } else {
            NSLog(@"%@", error);
        } 


异步下载文件:

- (void)viewDidLoad
{
    [super viewDidLoad];
    //文件地址
    NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
    NSURL    *url = [NSURL URLWithString:urlAsString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSMutableData *data = [[NSMutableData alloc] init];
    self.connectionData = data;
    [data release];
    NSURLConnection *newConnection = [[NSURLConnection alloc]
                                      initWithRequest:request
                                      delegate:self
                                      startImmediately:YES];
    self.connection = newConnection;
    [newConnection release];
    if (self.connection != nil){
       NSLog(@"Successfully created the connection");
    } else {
        NSLog(@"Could not create the connection");
    }
}




- (void) connection:(NSURLConnection *)connection
            didFailWithError:(NSError *)error{
    NSLog(@"An error happened");
    NSLog(@"%@", error);
}
- (void) connection:(NSURLConnection *)connection
              didReceiveData:(NSData *)data{
    NSLog(@"Received data");
    [self.connectionData appendData:data];
}
- (void) connectionDidFinishLoading
:(NSURLConnection *)connection{
    /* 下载的数据 */

        NSLog(@"下载成功");
        if ([self.connectionData writeToFile:@"UIWebViewDemo.zip" atomically:YES]) {
            NSLog(@"保存成功.");
        }
        else
        {
            NSLog(@"保存失败.");
        }
  
    /* do something with the data here */
}
- (void) connection:(NSURLConnection *)connection
          didReceiveResponse:(NSURLResponse *)response{
    [self.connectionData setLength:0];
}

- (void) viewDidUnload{
    [super viewDidUnload];
    [self.connection cancel];
    self.connection = nil;
    self.connectionData = nil;
}


从上面两段代码中可以看到同步与异步下载的区别,大部分时候我们使用异步下载文件。
分享到:
评论

相关推荐

    ios-nsurlsession文件下载.zip

    在实现文件下载时,我们需要创建`NSURLSessionDownloadTask`,它是`NSURLSessionTask`的一个子类,专门处理文件下载。创建下载任务通常涉及以下步骤: 1. 创建URL请求:使用`NSURLRequest`初始化一个请求对象,指定...

    iOS开发中文件的上传和下载功能的基本实现

    本文介绍如何不借助第三方框架实现iOS开发中得文件上传。  由于过程较为复杂,因此本文只贴出部分关键代码。 主控制器的关键代码: 代码如下: YYViewController.m #import “YYViewController.h” #define ...

    iOS-private-api-checker-master.zip

    本文将详细介绍一款名为“iOS-private-api-checker”的工具,该工具利用Python、Flask和SQLite来实现这一功能。 一、Python:核心脚本语言 Python是iOS-private-api-checker的主要编程语言,以其简洁明了的语法和...

    ios-AFNetworking的下载、请求、上传.zip

    尽管描述中提到上传部分可能无法完成,但AFNetworking确实支持文件上传。`AFHTTPSessionManager`提供了`uploadTask`方法来实现此功能。以下是一个简单的上传文件示例: ```swift let fileURL = URL(fileURLWithPath...

    ios-一行代码实现从手机上传文件到app.zip

    可是iOS上并没有直观的文件管理系统.这时候Document Picker就可以帮助我们访问iCould,dropBox等应用中的文件.然后进行相关操作. 参看线上APP:我的超级文件 (https://itunes.apple.com/cn/app/我的超级文件/id...

    ios-iOS-本地应用分发.zip

    5. **Diawi服务**:一种常见的在线工具,允许开发者上传IPA文件,生成一个URL,用户通过Safari浏览器访问该URL即可在iOS设备上安装应用,无需通过iTunes。 6. **配置文件的安装**:用户需要在iOS设备上安装配置描述...

    对应文件-iOS-打开照相机&打开本地相册&图片上传

    本篇文章将详细阐述如何在iOS应用中实现这些功能,并涵盖图片上传的相关技术。 一、访问相机 在iOS中,开发者可以使用AVFoundation框架中的AVCaptureSession类来访问设备的摄像头。首先,确保在Info.plist文件中...

    ios-根据AFNetworking3.0框架封装的,实现了GET、POST、PUT、DELETE、上传文件、下载文件、文件上传下载进度条等功能.zip

    Network, 根据AFNetworking3.0框架封装的,实现了GET、POST、PUT、DELETE、上传文件、下载文件、文件上传下载进度条等功能,同时支持IPv6。 为什么使用它? 1、简单快捷,只需要一句代码即可请求网络和文件处理 ...

    ios-远程下载html资源zip,解压webview打开.zip

    此外,为了处理离线情况或提高用户体验,可能会实现文件的断点续传和下载状态的持久化。 总的来说,这个项目涵盖了iOS开发中的多个关键知识点:网络请求(NSURLSession)、文件下载、文件解压(ZIP处理)、WebView...

    ios-iOS版本更新.zip

    "ios-iOS版本更新.zip"这个压缩包很可能包含了与iOS应用版本更新相关的代码示例或文档资源,例如"VersionMassageUpdate"可能是其中的一个关键文件,可能涉及到如何在应用启动时检查并提示用户进行版本更新的实现。...

    iOS开发之结合asp.net webservice实现文件上传下载

    ### iOS开发之结合ASP.NET WebService实现文件上传下载 在移动应用开发中,尤其是iOS平台的应用开发过程中,文件上传下载是十分常见的需求之一。本文旨在详细介绍如何利用ASP.NET WebService来实现iOS应用中的文件...

    ios-多个视频上传.zip

    这个"ios-多个视频上传.zip"文件很显然提供了一个实现这一功能的示例代码或者框架。下面将详细讲解多视频上传涉及的技术点以及如何实现。 首先,我们需要了解iOS中的媒体访问框架(Media Library Framework),尤其...

    ios-webView与js的交互.zip

    对于文件上传,可以通过WKWebView的`WKNavigationDelegate`监听文件选择事件,然后使用`UIDocumentPickerViewController`让用户选择文件。地理位置访问则需要调用iOS的CoreLocation框架,网络请求可以通过WKWebView...

    ios-模拟下载进度条.zip

    在iOS开发中,模拟下载进度条是一个常见的需求,特别是在实现文件下载功能时,为了提供良好的用户体验,进度条的展示至关重要。这个"ios-模拟下载进度条.zip"项目显然是一个示例,展示了如何在iOS应用中创建和控制一...

    ios-使用NSURLSession进行的下载上传以及断点续传,可多个文件上传.zip

    这个"ios-使用NSURLSession进行的下载上传以及断点续传,可多个文件上传.zip"压缩包文件包含了使用NSURLSession实现这些功能的示例代码,名为"WMHSession"。 首先,我们来理解一下NSURLSession的基本概念。...

    ios-下载进度,速度以及路径.zip

    这个名为“ios-下载进度,速度以及路径.zip”的压缩包很可能包含了关于如何在iOS应用中实现这一功能的示例代码、教程或者资源。下面将详细介绍如何在iOS中监控文件下载的进度、速度以及保存路径。 1. **下载进度...

    ios-轻松搞定网络实时监听、常用网络请求、上传下载文件、多图上传.zip

    本资源主要围绕如何在iOS平台轻松实现网络实时监听、处理常见网络请求、文件上传下载以及多图上传等核心功能。通过开源项目"NSNetworkManager",我们可以深入理解并掌握这些技术。 【描述】中的链接指向了Github上...

    ios-多选图片.zip

    本资源“ios-多选图片.zip”提供了一个名为“ImageSelectDemo”的示例项目,旨在帮助开发者理解和实现用户在应用内选择多张图片的功能。这个功能通常涉及到图片库的访问权限、图片预览、选择限制以及最终的图片上传...

    uniapp +上传文件+安卓、ios文件选择

    本教程将详细讲解如何在uniapp中实现文件上传功能,特别是针对Android和iOS设备,以及如何处理不同类型的文件,如PDF、Word和TXT,并将它们转换为Base64编码。 首先,我们需要了解uniapp的基础。uniapp基于Vue.js,...

    ios-视频压缩上传.zip

    在iOS开发中,视频压缩和上传是常见的需求,特别是在社交应用、在线教育或者短视频平台等场景。本项目“ios-视频压缩上传.zip”提供了一种使用AVFoundation框架中的AVAssetExportSession来处理视频压缩的方法。下面...

Global site tag (gtag.js) - Google Analytics