Alamofire에서 post 메소드를 사용하여 파일을 성공적으로 업로드했는데 서버에서 응답을 받으면 응답에 첨부 파일이 숨어있는 것을 볼 수 있습니다. 내 컴퓨터에 첨부 파일을 저장하려고 할 때 작동하지 않습니다. 다음은 코드입니다.
let urlRequest = urlRequestWithComponents(URL, parameters: parameters, imageData: fileData!)
Alamofire.upload(urlRequest.0, urlRequest.1)
.progress { (bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) in
println("\(totalBytesWritten) / \(totalBytesExpectedToWrite)")
}
.response { (request, response, data, error) in
println("REQUEST \(request)")
println("RESPONSE \(response)")
println("JSON \(data)")
println("ERROR \(error)")
다음은 서버에서받은 첨부 파일입니다.
"Content-Disposition" = "attachment; filename=20150113171557120001.mid";
그리고 데이터는 정확히 올바른 .mid 파일을 보여줍니다.
JSON 선택 사항 (<4d546864 00000006 00000001 00044d54 726b0000 00540391 35350381 35350291 3a3a0281 3a3a0291 3c3c0381 3c3c0191 3e3e0381 3e3e0691 3e3e0381 3e3e0891 3e00a0381 3e00a 391a03a381 3e00a 391a03a0381 3e0381) 391a03a03813e03813e0381 3e003e0291 3c381
오류 없음
내 컴퓨터에 첨부 파일을 저장하는 데 사용하는 코드는 다음과 같습니다.
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSArray
let documentsDirectory = paths.objectAtIndex(0) as NSString
let path = documentsDirectory.stringByAppendingPathComponent("file.mid")
(data as NSData).writeToFile(path, atomically:true)
첨부 파일을 저장하는 코드를 추가하면 다음과 같이 표시되는 스레드를 제외하고 출력 중에 오류 또는 경고가 없습니다.
thread1 exc_breakpoint (코드 = exc_i386_BPT, 서브 코드 = 0x0)
첨부 파일을 저장하는 데 잘못된 방법을 사용하고 있습니까?
16 진수 표현을 보면 MIDI 파일처럼 보입니다 (오른쪽 바이트로 시작).
문제는:
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSArray
let documentsDirectory = paths.objectAtIndex(0) as NSString
"첫 번째 항목"을 두 번 받고 있습니다. 반환하려는 항목 paths
은 경로 배열이 아니라 해당 배열의 첫 번째 문자열입니다 ( [0]
끝에 를 포함했기 때문에 ). 따라서 배열로 캐스팅하려는 시도는 실패합니다 (나중에 첫 번째 항목을 가져 오려는 시도보다 훨씬 적음).
더 간단합니다.
let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다