siwft_上传和下载

58 篇文章 0 订阅

下载文件,并将文件存储到指定的文件中

    func simpleDownload() {

        let  destination = DownloadRequest.suggestedDownloadDestination(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)

        //打印存储文件的沙盒路径

        print( NSHomeDirectory() + "/Documents")

        //下载然后查看下载文件

        let result = Alamofire.download("https://httpbin.org/stream/1", to: destination)

        print(result)

        

    }

 

更复杂一点的用

func complexDownLoad() {

        let  param = ["foo":"bar"]

        

         let  destination = DownloadRequest.suggestedDownloadDestination(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)

        Alamofire.download("http://img.sccnn.com/bimg/313/507.jpg", method: .get, parameters: param, encoding:JSONEncoding.default, headers: nil, to: destination).downloadProgress(queue: DispatchQueue.global()) { (progress) in

            //进度的完成比例

            print("Progress1:\(progress.fractionCompleted)")

            //已经下载的字节数

            print("Progress2:\(progress.completedUnitCount)")

            //全部的字节数

            print("Progress3:\(progress.totalUnitCount)")

            }.validate { (request, respon, temporaryURL, destinationURL) -> Request.ValidationResult in

                

                //完成图片下载后执行验证方法,此处返回成功标识

                print("请求成功")

                return .success

            }.responseJSON { (response) in

                //依次输出返回对象,图片下载临时存放位置,以及下载位置后的存储位置

                debugPrint("response:\(response)")

                print("response.temporaryURL:\(String(describing: response.temporaryURL))")

                 print("destinationURL:\(String(describing: response.destinationURL))")

        }

    }

可以自己添加一个下载进度条

 

上传

  我将图片添加到工程中了,实际中应该取自相册或者相机拍照

    func simpleUpload() {

//此处一定要有图片,因为我下边用的

        let fileURL = Bundle.main.url(forResource: "507", withExtension: "jpg")

        Alamofire.upload(fileURL!, to:"http://httpbin.org/post").uploadProgress(queue: DispatchQueue.global(), closure: { (progress) in

               print("Progress1:\(progress.fractionCompleted)")

        }).validate().responseJSON { (response) in

            DispatchQueue.main.async {

             print("result:\(response.result)")

                            }

    }

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值