2017-04-10 82 views
0

我想用URLSession类的uploadTask方法将图像发送到服务器,我有以下函数用于上传图像,但我无法在php文件上读取任何内容。uploadTask方法不起作用URLSession Swift 3

@IBAction func uploadImage(_ sender: Any) { 
    let config = URLSessionConfiguration.default 
    let session = URLSession(configuration: config) 
    UIApplication.shared.isNetworkActivityIndicatorVisible = true 

    let url = URL(string: "http://www.localhost.com/destiny.php")! 
    let file: URL = Bundle.main.url(forResource: "colors", withExtension:"jpg")! 

    var request = URLRequest(url: url) 
    request.httpMethod = "POST" 
    request.addValue("image/jpeg", forHTTPHeaderField: "Content-Type") 

    let task = session.uploadTask(with: request, fromFile: file) { 
     (data: Data?, res: URLResponse?, error: Error?) in 
     defer { 
      DispatchQueue.main.async { 
       UIApplication.shared.isNetworkActivityIndicatorVisible = false 
      } 
     } 
     if error != nil { 
      print(error!.localizedDescription) 
      return 
     } 
     if data != nil{ 
      let strData = String(data:data!, encoding:String.Encoding.utf8) 
      print(strData!) 
     } 
     let code = (res as! HTTPURLResponse).statusCode 
     print(code) 
     if code != 201 { 
      print(HTTPURLResponse.localizedString(forStatusCode: code)) 
      return 
     } 
     print("Uploaded!") 
    } 
    task.resume() 
} 

php文件包含以下代码:

print_r($_POST) 
print_r($_FILES) 

我的输出应用:

Array() 
Array() 
200 
no error 

我希望你能帮助我找到什么是错的。

问候。

回答

0

我解决了这个问题,为PHP解释添加了头文件。