4일째... 헤메고 있습니다. 고수님들 답변 좀 부탁드릴께요
1. 파일이름을 첫번째인자로 사용한 버전의 TidFTP.put()을 사용해서 파일업로드 중 '일시중지' 버튼을 누르면 TidFTP.abort, TidFTP.quit을 사용해 중지해놓고
2. 다시 upload버튼을 누르면 재전송, put의 새번째 인자인 append를 true 넣어서 원격지의 대상파일 뒤에 덧붙여 구현하고 있습니다.
append 인자를 true 사용하니깐 파일 뒤에 붙여 이어전송은 되는데 다음과 같은 문제점이 발생되더군요
1. 700MB짜리 파일을 100MB전송 후 일시정지 후 다시 재전송하면 원격지의 대상파일이 800MB되는 문제
2. 덧붙임에 어긋나는 경우가 일어나 대상파일이 정상이 아닌 경우가 생기더군요..
그래서 이번에는 TFileStream을 사용해서 업로드 대상파일을 TFileStream 읽기전용으로 인스턴스 생성후
put을 사용해서 업로드 하고 일시정지후 재전송할 때는 TFileStream.Seek 을 사용해서 재전송할 포지션을 설정한 후 업로드해봤는데 이것도 위의 두 가지 문제가 발생되더라구요
그래서 고심하다가 TFileStream을 사용해서 업로드 대상파일의 인스턴스를 생성한 후 TMemoryStream에 CopyFrom을 사용해 복사해서 MemoryStream으로 업로드하고 일시정지후 재전송시 전송되지않은 나머지 부분을 다시 CopyFrom을 사용해서 MemoryStream 복사후 보내는 방법을 시도해봤는데
대상파일을 700MB의 동영상 파일이라서 그런지 CopyFrom과정에서 넘 오래걸려.. 시도도 못해봤습니다.
고수님들... 도와주세요~~ ㅜㅜ