相关疑难解决方法(0)

使用Swift中的multipart form-data iOS上传图片

我在使用multipart-form上传图片时遇到问题

这是我从这个答案中使用的代码

    var request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "POST"

    var boundary = generateBoundaryString()
    request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

    var body = NSMutableData()

    if self.img.image != nil {
        var imageData = UIImagePNGRepresentation(self.img.image)

        if imageData != nil {
            body.appendString("--\(boundary)\r\n")
            body.appendString("Content-Disposition: form-data; name=\"image\"; filename=\"image.png\"\r\n")
            body.appendString("Content-Type: image/png\r\n\r\n")
            body.appendData(imageData!)
            body.appendString("\r\n")
        }

    }

    body.appendString("--\(boundary)--\r\n")
    request.setValue("\(body.length)", forHTTPHeaderField:"Content-Length")
    request.HTTPBody = body
Run Code Online (Sandbox Code Playgroud)

然后我使用NSURLSession来应用请求

服务器说我没有选择上传图片我只想暂时上传图片

我是否必须使用图像路径上传任何图像,或者它的数据是否足够?

我是否会错过任何事情,有什么帮助才能理解这一点?

file-upload image multipartform-data ios swift

26
推荐指数
4
解决办法
5万
查看次数

如何使用Swift将图像上传到iOS服务器?

它不起作用,如何将图像从iOS Swift应用程序发送到我的PHP服务器?

@IBAction func upload(sender: UIButton) {

    var imageData = UIImageJPEGRepresentation(img.image, 90)
   // println(imageData)
    let url = NSURL(string:"http://www.i35.club.tw/old_tree/test/uplo.php")
    //let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
    //var request = NSMutableURLRequest(URL: url, cachePolicy: cachePolicy, timeoutInterval: 10)
    var request = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "POST"

    // set Content-Type in HTTP header
    let boundaryConstant = "----------V2ymHFg03esomerandomstuffhbqgZCaKO6jy";
    let contentType = "multipart/form-data; boundary=" + boundaryConstant
    NSURLProtocol.setProperty(contentType, forKey: "Content-Type", inRequest: request)
    request.HTTPBody = imageData
    // set data
    //var dataString = "adkjlkajfdadf"
    //let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
    //request.HTTPBody = requestBodyData …
Run Code Online (Sandbox Code Playgroud)

ios swift

19
推荐指数
4
解决办法
7万
查看次数

Multipart-form(图像,参数,标题)使用Alamofire在swift中发布请求

首先,我想说我是新手,并且知道一点点.所以任何帮助都会受到关注.我有一个multipart-data表单,它有一个图像(profile-image),一些参数(first-name,last-name)和header(userid,hashCode).我想发送一个POST请求来提交表单.

我只能使用标题和除图像之外的其他参数发出POST请求:

let headers = [
        "user_id": (Helper.getUserInfo()?.user_id)!,
        "hash_code":(Helper.getUserInfo()?.hash_code)!,
    ]
let params = [
        "name": self.name.text!,
        "address":self.address.text!]


    Alamofire.request(.POST, kFormUrl, parameters:params ,headers:headers).responseJSON { [weak self] response in

//working fine
}
Run Code Online (Sandbox Code Playgroud)

但是如何将图像作为文件发送(不是base-64string),即使用参数和标题直接上传文件.

提前致谢

ios swift alamofire

8
推荐指数
1
解决办法
1万
查看次数

如何在 Swift 中使用 Codable 和 URLSession.shared.uploadTask (multipart/form-data) 上传图像文件?

我想使用某个 URL 端点将图像文件上传到后端服务器。我可以使用 Alamofire 的上传请求作为 multipartFormData 轻松做到这一点。但是我想摆脱 Alamofire 以尽量减少对第三方框架的依赖。这是 Alamofire 代码,它有效:

func uploadRequestAlamofire(parameters: [String: Any], imageData: Data?, completion: @escaping(CustomError?) -> Void ) {

let url = imageUploadEndpoint!

let headers: HTTPHeaders = ["X-User-Agent": "ios",
                            "Accept-Language": "en",
                            "Accept": "application/json",
                            "Content-type": "multipart/form-data",
                            "ApiKey": KeychainService.getString(by: KeychainKey.apiKey) ?? ""]

Alamofire.upload(multipartFormData: { (multipartFormData) in
    for (key, value) in parameters {
        multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key as String)
    }

    if let data = imageData {
        multipartFormData.append(data, withName: "file", fileName: "image.png", mimeType: "image/jpg")
    }

}, usingThreshold: UInt64.init(), to: url, …
Run Code Online (Sandbox Code Playgroud)

multipartform-data ios swift alamofire codable

2
推荐指数
1
解决办法
4982
查看次数