Swift 3.0にて下記curlコマンドと同等の処理を実現したいと考えておりますが、実装方法が不明のため、ご教授ください。

【実現したいコマンド】
curl -X POST -F photo=@【画像ファイル(PNG)】 -F user_id=1 -F tag_id=1 http://X.X.X.X/

【具体例】
curl -X POST -F photo=@/Users/test/test.PNG -F user_id=1 -F tag_id=1 http://192.168.1.1/test/

現状私が実装しているSwiftファイルは下記の通りです。

var request = URLRequest(url:URL(string:"http://192.168.1.1/test")!)

request.httpMethod = "POST"

// 画像データを読み出し、Data型に変換する.
let file: NSData = UIImagePNGRepresentation(image)! as NSData

//POSTするデータを設定する
let postString = "photo=\(file)&user_id=1&tag_id=1"
request.httpBody = postString.data(using: .utf8)


//タスクを作成する
let task = URLSession.shared.dataTask(with: request, completionHandler: {
    (data, response, error) in

    if error != nil {
        print(error)
        return
    }

    print("response: \(response!)")

})
//タスクを開始する
task.resume()