Swift - 使用URLSession加载数据、下载、上传文件
2017-06-17 22:07
393 查看
URLSession 类支持三种类型的任务:加载数据、下载和上传。下面通过样例分别进行介绍。(本文代码已升级至 Swift3)
1,使用Data Task加载数据
使用全局的 URLSession.shared 和 dataTask 方法创建。
运行结果如下:
2,使用Download Task来下载文件
(1)不需要获取进度
使用全局的 URLSession.shared 和 downloadTask 方法即可
运行结果如下:
(2)实时获取进度
需要使用自定义的 URLSession 对象和 downloadTask 方法
运行结果如下:
3,使用Upload Task来上传文件
附:服务端代码(upload.php)
如何在上传时附带上文件名?
有时我们在文件上传的同时还会想要附带一些其它参数,比如文件名。这样服务端接收到文件后,就可以根据我们传过来的文件名来保存。实现这个其实很简单,客户端和服务端分别做如下修改。
客户端:将文件名以参数的形式跟在链接后面。比如:http://hangge.com/upload.php?fileName=image1.png
服务端:通过 $_GET["fileName"] 得到这个参数,并用其作为文件名保存。
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_780.html
1,使用Data Task加载数据
使用全局的 URLSession.shared 和 dataTask 方法创建。
2,使用Download Task来下载文件
(1)不需要获取进度
使用全局的 URLSession.shared 和 downloadTask 方法即可
(2)实时获取进度
需要使用自定义的 URLSession 对象和 downloadTask 方法
3,使用Upload Task来上传文件
有时我们在文件上传的同时还会想要附带一些其它参数,比如文件名。这样服务端接收到文件后,就可以根据我们传过来的文件名来保存。实现这个其实很简单,客户端和服务端分别做如下修改。
客户端:将文件名以参数的形式跟在链接后面。比如:http://hangge.com/upload.php?fileName=image1.png
服务端:通过 $_GET["fileName"] 得到这个参数,并用其作为文件名保存。
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_780.html
相关文章推荐
- Swift - 使用NSURLSession加载数据、下载、上传文件
- Swift - 使用NSURLSession加载数据、下载、上传文件
- RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- 简单实现的自定义圆环进度条,可使用于文件的上传下载图片加载等地方.
- 使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- 通过使用libcurl POST数据和上传与下载文件
- 使用FileUpload工具实现文件上传与使用ThreadLocal容器传递数据实现分页查询下载
- ie8下使用jquery-file-upload上传文件后返回json格式数据提示下载
- 使用cmd命令方式登录ftp实现上传下载文件数据
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- IOS swift使用webView加载网页上传文件报错:whose view is not in the window hierarchy!
- 使用JQuery加载XML文件中的数据【附源码下载】
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- [已上传demo]使用HttpHandler做文件过滤器,验证下载文件权限
- 使用SFTP实现Linux上文件上传下载
- 将上传文件以二进制形式存入数据库中,并下载数据库中的二进制数据生成对应的文件
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名
- linux文件上传下载命令使用