1
我正在使用swift,iOS10处理多部分请求。使用ios10的多部分请求
使用下面的代码将图像保存到服务器。当用url打开图片时只会收到404错误。
我找不到什么是错在我的代码,虽然被称为网页 - https://newfivefour.com/swift-form-data-multipart-upload-URLRequest.html
请帮助。在iOS的10
func connectToServerWithImage(urlString: String, param: Any, image: UIImage, target: NSObject, action: Selector) {
let url = URL(string: urlString)!
var request = URLRequest(url: url)
// set request configuration
let boundary = "Boundary-\(UUID().uuidString)"
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
// set body
let body = NSMutableData()
let paramDic = param as! Dictionary<String, String>
// set param to body
for (key, value) in paramDic {
body.append("--\(boundary)\r\n".data(using: .utf8, allowLossyConversion: false)!)
body.append("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n".data(using: .utf8)!)
body.append("\(value)\r\n".data(using: .utf8)!)
}
// set image to body
let filename = paramDic["\(paramDic["TYPE"]!)_MST_NO"]! + ".jpg"
body.append("--\(boundary)\r\n".data(using: .utf8, allowLossyConversion: false)!)
body.append("Content-Disposition: form-data; name=\"file\"; filename=\"\(filename)\"\r\n\r\n".data(using: .utf8, allowLossyConversion: false)!)
body.append("Content-Type: image/jpg\r\n\r\n".data(using: .utf8, allowLossyConversion: false)!)
body.append(UIImageJPEGRepresentation(image, 1)!)
body.append("\r\n".data(using: .utf8, allowLossyConversion: false)!)
body.append("--\(boundary)--\r\n".data(using: .utf8, allowLossyConversion: false)!)
request.httpBody = body as Data
// url configuration
let urlConfig = URLSessionConfiguration.ephemeral
urlConfig.timeoutIntervalForRequest = 5
urlConfig.timeoutIntervalForResource = 5
let session = URLSession(configuration: urlConfig)
let dataTask = session.dataTask(with: request) { (data, response, error) in
session.finishTasksAndInvalidate()
DispatchQueue.main.async {
if error == nil {
if let httpUrlResponse = response as? HTTPURLResponse {
if httpUrlResponse.statusCode == 200 {
do {
let jsonObject: Dictionary<String, Any> = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! Dictionary<String, Any>
if jsonObject.isEmpty {
target.perform(action, with: ["RES_CODE:": "NULL"])
}
} catch let _ {}
}
}
}
}
}
dataTask.resume()
}
在上载工作?检查服务器。 – ryantxr
@ryantxr不,图像未保存到服务器。有一个图像文件带有我指定的名称,但图像文件无法打开。我猜是有拼写错误或保存图像数据的东西。 – Minjee