2

이미지 선택기 컨트롤러를 통해 그림이나 파일을 업로드하는 데 문제가 있습니다. 이미지 선택 도구를 통해 이미지를 선택한 다음 event_id, booking_id, memeber_id 및 upfile 매개 변수를 전달합니다. 이 모든 값은 우편 배달부의 양식 데이터 형식입니다. 이 값을 API로 보내는 방법은 무엇입니까? 우편 배달부에서는 완벽하게 실행되고 있지만 여기서 Xcode에서는 오류가 표시됩니다. 나는 매개 변수를 생각하고 있는데, 나는 그 오류를 포함하고있다.Swift4에서 다중 매개 변수가있는 다중 파트 양식 데이터를 통해 이미지 또는 파일을 업로드하는 방법

func UploadRequest() { 
    let x: Int = defaults.integer(forKey: "ObjectID") 
    user_id = String(x) 
    auth_key = defaults.value(forKey: "AuthKey") as! String 
    var request2 = URLRequest(url: uploadDoc! as URL) 
    request2.httpMethod = "POST" 

    //define the multipart request type 
    if (self.img.image == nil) { 
     return 
    } 
    let image_data = UIImageJPEGRepresentation(self.img.image!, 1) 
    if(image_data == nil) { 
     return 
    } 
    let boundry = generateBoundaryString() 
    request2.setValue(user_id, forHTTPHeaderField: "user_id") 
    request2.setValue(auth_key, forHTTPHeaderField: "auth_key") 
    request2.setValue("multipart/form-data; boundary=\(boundry)", forHTTPHeaderField: "Content-Type") 
    let param = ["event_id":evId,"booking_id":receivedId,"member_id":memId] 
    print(param) 
    request2.httpBody = createBody(params: param, filePathKey: "upfile", imageDatakey: image_data! as NSData, boundary: boundry) as Data 
    self.jsonDifferentRunDoc(passString: request2) 
} 

//Generate Boundry String 
func generateBoundaryString() -> String { 
    return "Boundary-\(UUID().uuidString)" 
} 

func createBody(params: [String: String]?, filePathKey: String, imageDatakey: NSData, boundary: String) -> NSData { 
    let body = NSMutableData() 
    if params != nil { 
     for (key, value) in params! { 
      body.appendString(boundary) 
      body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n") 
      body.appendString("\(value)\r\n") 
     } 
    } 

    let filename = "jk.jpg" 
    let mimetype = "image/jpg" 

    body.appendString(boundary) 
    body.appendString("Content-Disposition: form-data; name=\"upfile\"; filename=\"\(filename)\"\r\n") 
    body.appendString("Content-Type: \(mimetype)\r\n\r\n") 
    body.append(imageDatakey as Data) 
    body.appendString("\r\n") 
    body.appendString("--".appending(boundary.appending("--"))) 

    //print("Body = \(body)") 
    return body 
} 

이 기능을 실행하면 오류가 표시됩니다.

lineBreak = "\r\n"; 
body.appendString("--\(boundary)--\(lineBreak)"); 

이 시도하십시오 : 경계를 업로드하는 동안

+0

어떤 오류가 표시됩니까? –

+0

오류를 알려주십시오 –

+0

API에 표시 오류가 있습니다. 프레임 워크 오류. –

답변

1

구문 오류가 있습니다.

관련 문제