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에서 파일 형식을 지정해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ARC 환경에서 dealloc 사용 오류MRC 시대에 우리는 dealloc에서 많은 것을 해야 한다. 일반 대상의 방출에 대해 시스템이 우리를 도와 주었다.우리는 더 이상 메모리 문제를 걱정할 필요가 없을까요?답안은 부정적이다. 어떤 상황에서 호출될까요?...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.