gpt4 book ai didi

json - 在swift3中将图像上传到服务器

转载 作者:行者123 更新时间:2023-11-30 12:07:42 24 4
gpt4 key购买 nike

我想将图像作为参数与我的请求一起发送。我已使用下面的代码来调用我的 PUT 请求,但我不知道如何将图像附加到正文。

  func myImageUploadRequest()
{
let headers = [
"content-type": "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
"cache-control": "no-cache"
]
let parameters = [
[
"name": "Name",
"value": "Swift"
],
[
"name": "Key",
"fileName": "123.png"
//UIImagePNGRepresentation(myImageView.image!)

]
]

let boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"

var body = ""
var error: NSError? = nil
do{
for param in parameters {
let paramName = param["name"]!
body += "--\(boundary)\r\n"
body += "Content-Disposition:form-data; name=\"\(paramName)\""
if let filename = param["fileName"] {
let contentType = param["content-type"]!
let fileContent = try String(contentsOfFile: filename as! String, encoding: String.Encoding.utf8)
if (error != nil) {
print(error)
}
body += "; filename=\"\(filename)\"\r\n"
body += "Content-Type: \(contentType)\r\n\r\n"
body += fileContent
} else if let paramValue = param["value"] {
body += "\r\n\r\n\(paramValue)"
}
}
// }//do


let request = NSMutableURLRequest(url: NSURL(string: "http://——----docUpload/MediaUpload/")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
// request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})

dataTask.resume()
}

catch {
} //new

}

我看过很多例子并尝试过但无法自己实现。请检查我的代码并帮助我。

最佳答案

一种选择是使用 Base64 对图像进行编码,然后您可以将其作为字符串包含在 json 中。虽然这个answer指的是 javascript,它总体上解释了这种方法的优点和缺点。

对于语法检查此 answer ,其中列出了您可能需要的所有可能选项,但下面的代码应该为您提供可以添加到请求正文中的文件内容。

if let image = UIImage(named:"imageNameHere"), 
let imageData = UIImagePNGRepresentation(image) {

let fileContent = imageData.base64EncodedString(options: .lineLength64Characters)
}

关于json - 在swift3中将图像上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46489903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com