Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Teepheh-Git/0b76237d531da95ffe3805925a838c8e to your computer and use it in GitHub Desktop.
Save Teepheh-Git/0b76237d531da95ffe3805925a838c8e to your computer and use it in GitHub Desktop.
upload img
let fileURL = URL(fileURLWithPath: "/Users/user/Downloads/appLogo.png")
let boundary = "Boundary-\(UUID().uuidString)"
let authorization = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NDU4LCJpYXQiOjE2ODkwODgyNzcsImV4cCI6MTY5MTY4MDI3N30.3vtNJxke0QBl3wGLuIGMnDzH-JpI8p64MVmRxux0TwI"
var request = URLRequest(url: URL(string: "https://fricassa-staging.itskillscenter.com/upload/")!, timeoutInterval: Double.infinity)
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.addValue(authorization, forHTTPHeaderField: "Authorization")
request.httpMethod = "POST"
let body = NSMutableData()
for param in [["key": "files", "src": fileURL.path, "type": "file"]] {
if let paramName = param["key"] as? String,
let paramType = param["type"] as? String {
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: form-data; name=\"\(paramName)\"")
if let contentType = param["contentType"] as? String {
body.appendString("\r\nContent-Type: \(contentType)")
}
if paramType == "text" {
if let paramValue = param["value"] as? String {
body.appendString("\r\n\r\n\(paramValue)\r\n")
}
} else {
if let fileData = try? Data(contentsOf: fileURL),
let fileContent = String(data: fileData, encoding: .utf8) {
body.appendString("; filename=\"\(fileURL.lastPathComponent)\"\r\n")
body.appendString("Content-Type: content-type header\r\n\r\n\(fileContent)\r\n")
}
}
}
}
body.appendString("--\(boundary)--\r\n")
request.httpBody = body as Data
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment