swift-Alamofire 서버에 매개 변수로 파일 전송

2513 단어 Ios

Alamofire가 서버에 매개 변수로 파일 전송


인터넷에는 서버에 파일을 어떻게 올리느냐고만 말하는 자료가 많고, 버전도 비교적 낡아서 현재로서는 전혀 쓸모가 없다.때때로 단순히 파일을 전달하는 것이 아니라 매개 변수를 가지고 일련의 값을 전달하는 것이다. 파일은 그 중의 하나일 뿐이다.예를 들어 하나의 인터페이스는 키 값이 맞는 형식으로 3개의 값을 올려야 한다. 키1-'aaa'.key2-“bbb”;key3 - [그림].그 중에서 앞의 두 파라미터의 값은 문자 형식입니다. 세 번째 파라미터는 그림을 보내달라고 합니다. 그러면 Alamofire를 사용하면 어떻게 조작해야 합니까?직접 코드:
Alamofire.upload(
         multipartFormData: { multipartFormData in
            for key in parmameters.keys{
               if key != "file"{
                  multipartFormData.append((parmameters[key] as! String).data(using: String.Encoding.utf8)!, withName: key)
               }else{
                  multipartFormData.append(parmameters[key] as! URL, withName: key, fileName: "passport.jpg", mimeType: "image")
               }
            }
      },
         to: url,
         encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
               upload.responseString { response in
                  let str = response.result.value!
                  let entity=PassportEntity(JSONString: str)
                  if entity != nil{
                     finishedCallback(entity!)
                  }else{
                     finishedCallback("failure" as AnyObject)
                  }
               }
            case .failure(let encodingError):
               finishedCallback("failure" as AnyObject)
            }
      }
      )

그 중에서 "Passport Entity"는 나의 사용자 정의 클래스입니다. 당신들은 자신의 필요에 따라 쓰십시오.관건은 이 매개 변수에 있다.
multipartFormData: { multipartFormData in
            for key in parmameters.keys{
               if key != "file"{
                  multipartFormData.append((parmameters[key] as! String).data(using: String.Encoding.utf8)!, withName: key)
               }else{
                  multipartFormData.append(parmameters[key] as! URL, withName: key, fileName: "passport.jpg", mimeType: "image")
               }
            }
      }

폼 방식으로 키 값이 맞는 형식으로 매개 변수를 업로드합니다. withName에 대응하는 값은 당신의 키입니다. append () 방법의 첫 번째 매개 변수는 이 키에 대응하는 값입니다. "parmameters"는 제가 전송한 키 값이 맞는 사전 ([String: Any] 형식) 입니다. 제가 그림을 업로드할 때 사용하는 것은 다음과 같습니다.
 multipartFormData.append(parmameters[key] as! URL, withName: key, fileName: "passport.jpg", mimeType: "image")

파일 경로를 가져오면 됩니다. mimeType에서 파일 형식을 지정해야 합니다.

좋은 웹페이지 즐겨찾기