0
아래 코드를 사용하여 FTP에 이미지/비디오를 업로드하고 있습니다. 전체 이미지가 업로드되지 않습니다. 이미지의 로우 부분이 잘려나 간다. 업로드 프로세스가 끝나면 전체 데이터가 업로드되지만 이미지는 잘린 상태라고합니다. 작은 이미지와 비디오를 업로드 할 수 있습니다. 문제는 큰 이미지와 동영상입니다. 아래 코드에서 수행해야 할 변경 사항을 알려 주시기 바랍니다.FTP Swift 3.0에 이미지/비디오 업로드
let buf = movieData?.bytes.assumingMemoryBound(to: UInt8.self)
let buf2 = movieData?.bytes.assumingMemoryBound(to: UInt8.self)
let buf3 = UnsafeMutablePointer<UInt8>.allocate(capacity: (movieData?.length)!)
var leftOverSize = movieData?.length
let bytesFile = movieData?.length
var totalBytesWritten = 0
var bytesWritten = 0
let ftpUrl = NSURL(string: "FTP_URL")
let stream = CFWriteStreamCreateWithFTPURL(nil,ftpUrl!).takeUnretainedValue()
let cfstatus = CFWriteStreamOpen(stream) as Bool
// connection fail
if !cfstatus {
print("Not connected")
}
repeat{
// Write the data to the write stream
bytesWritten = CFWriteStreamWrite(stream, buf, leftOverSize!)
print("bytesWritten: \(bytesWritten)")
if (bytesWritten > 0) {
totalBytesWritten += bytesWritten
// Store leftover data until kCFStreamEventCanAcceptBytes event occurs again
if (bytesWritten < bytesFile!) {
leftOverSize = bytesFile! - totalBytesWritten
memmove(buf3, buf2! + bytesWritten, leftOverSize!)
}else{
leftOverSize = 0
}
}else{
print("CFWriteStreamWrite returned \(bytesWritten)")
break
}
if !CFWriteStreamCanAcceptBytes(stream){
sleep(1)
}
}while((totalBytesWritten < bytesFile!))
CFWriteStreamClose(stream)