gpt4 book ai didi

ios - 在 swift 中使用 httprequest 发送带有图像上传的字符串数据

转载 作者:行者123 更新时间:2023-11-30 14:02:19 26 4
gpt4 key购买 nike

我只想发送此请求的日期:

var variables:String = "picture_title=" + pictit + "&"
variables += "picture_desc=" + picdes + "&"
variables += "category=" + tagfinal

我想将上述值与图像文件一起传递。下面的代码对于图像上传可以正常工作,但我无法向此代码添加其他参数,该参数用于将字符串数据发送到 php 文件。

var imageData :NSData = UIImageJPEGRepresentation(imagenReduced, 1.0);       
var request: NSMutableURLRequest?
let HTTPMethod: String = "POST"
var timeoutInterval: NSTimeInterval = 60
var HTTPShouldHandleCookies: Bool = false

request = NSMutableURLRequest(URL: url)
request!.HTTPMethod = HTTPMethod
request!.timeoutInterval = timeoutInterval
request!.HTTPShouldHandleCookies = HTTPShouldHandleCookies

let boundary = "----------SwIfTeRhTtPrEqUeStBoUnDaRy"
let contentType = "multipart/form-data; boundary=\(boundary)"
request!.setValue(contentType, forHTTPHeaderField:"Content-Type")
var body = NSMutableData();

let tempData = NSMutableData()
let fileName = filenames + ".jpg" //"prueba.jpg"
let parameterName = "userfile"

let mimeType = "application/octet-stream"

tempData.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
let fileNameContentDisposition = fileName != nil ? "filename=\"\(fileName)\"" : ""
let contentDisposition = "Content-Disposition: form-data; name=\"\(parameterName)\"; \(fileNameContentDisposition)\r\n"
tempData.appendData(contentDisposition.dataUsingEncoding(NSUTF8StringEncoding)!)
tempData.appendData("Content-Type: \(mimeType)\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
tempData.appendData(imageData)
tempData.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

body.appendData(tempData)

body.appendData("\r\n--\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

request!.setValue("\(body.length)", forHTTPHeaderField: "Content-Length")
request!.HTTPBody = body

var vl_error :NSErrorPointer = nil
var responseData = NSURLConnection.sendSynchronousRequest(request,returningResponse: nil, error:vl_error)

var results = NSString(data:responseData, encoding:NSUTF8StringEncoding)
println("finish \(results)")

最佳答案

尝试使用众所周知的 Alomafire 来做到这一点图书馆。马特和社区在完善该库方面做得很好。在那里您将找到您正在寻找的方法,包括使用一些参数将图像传递到服务器。您特别要寻找的是:

    Alamofire.upload(
.POST,
"http://httpbin.org/post",
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn")
multipartFormData.appendBodyPart(fileURL: rainbowImageURL, name: "rainbow")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .Failure(let encodingError):
print(encodingError)
}
}
)

关于ios - 在 swift 中使用 httprequest 发送带有图像上传的字符串数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848821/

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