1 import UIKit
2 //在当前的类文件中,引入已经安装的第三方类库
3 import Alamofire
4
5 class ViewController: UIViewController {
6
7 override func viewDidLoad() {
8 super.viewDidLoad()
9 // Do any additional setup after loading the view, typically from a nib.
10 //简单的图片上传功能
11 simpleUpload()
12
13 //实时显示上传进度的图片上传功能
14 complexUpload()
15 }
16
17 //添加一个方法,首先实现一个简单的上传动作
18 func simpleUpload()
19 {
20 //获得项目中图片所在的路径
21 let fileURL = Bundle.main.url(forResource: "iphone_large_2x", withExtension: "jpg")
22 //调用网络操作库的上传方法,将指定位置的图片文件,上传到服务器接口。
23 Alamofire.upload(fileURL!,to:"https://httpbin.org/post")
24 .validate()
25 .responseJSON { response in
26 //上传完成之后,返回主线程,弹出上传结束的提示信息
27 DispatchQueue.main.async{
28 //获得服务器返回对象的结果信息
29 let message = "Result:\(response.result)"
30
31 //创建一个警告窗口,并设置弹出窗口的标题、信息和样式等属性
32 let alert = UIAlertController(title: "Information", //标题
33 message: message, //信息
34 preferredStyle: UIAlertControllerStyle.alert)//样式
35 //初始化一个警告动作的按钮控件,当点击该按钮时,关闭弹出窗口。
36 let OKAction = UIAlertAction(title: "OK",
37 style: UIAlertActionStyle.default,
38 handler: nil)
39 //将警告动作添加到窗口中,
40 alert.addAction(OKAction)
41 //然后弹出警告窗口
42 self.present(alert, animated: true, completion: nil)
43 }
44 }
45 }
46
47 //添加一个方法,
48 //实现一个可实时显示上传进度的图片上传功能
49 func complexUpload()
50 {
51 //获得项目中图片所在的路径
52 let fileURL = Bundle.main.url(forResource: "iphone_large_2x", withExtension: "jpg")
53 //调用网络操作库的上传方法,将指定位置的图片文件,上传到服务器接口。
54 Alamofire.upload(fileURL!,to:"https://httpbin.org/post")
55 //在上传进度的方法中,处理返回的进度信息
56 .uploadProgress { progress in
57
58 //在控制台输出:上传进度的完成比例
59 print("---fractionCompleted:\(progress.fractionCompleted)")
60 //在控制台输出:已经上传的字节数
61 print("---completedUnitCount:\(progress.completedUnitCount)")
62 //在控制台输出:总的字节数
63 print("---totalUnitCount:\(progress.totalUnitCount)")
64 }
65 //调用验证方法,验证上传的任务
66 .validate()
67 //处理上传结束后,服务器返回的数据
68 .responseJSON { response in
69 //上传完成之后,返回主线程,弹出上传结束的提示信息
70 DispatchQueue.main.async{
71 //在控制台输出:服务器返回对象的结果信息
72 print("---Result:\(response.result)")
73 //获得服务器返回对象的结果信息
74 let message = "Result:\(response.result)"
75
76 //创建一个警告窗口,并设置弹出窗口的标题、信息和样式等属性
77 let alert = UIAlertController(title: "Information", //标题
78 message: message,//信息
79 preferredStyle: UIAlertControllerStyle.alert)//样式
80 //初始化一个警告动作的按钮控件,当点击该按钮时,关闭弹出窗口。
81 let OKAction = UIAlertAction(title: "OK",
82 style: UIAlertActionStyle.default,
83 handler: nil)
84 //将警告窗口添加到窗口中
85 alert.addAction(OKAction)
86 //然后弹出警告窗口
87 self.present(alert, animated: true, completion: nil)
88 }
89 }
90 }
91
92
93 override func didReceiveMemoryWarning() {
94 super.didReceiveMemoryWarning()
95 // Dispose of any resources that can be recreated.
96 }
97 }