Archived Forum PostQuestion:
Dear Sir,
I would like to know why PutFile does not overwrite my remote file and still returns a success message. I am running the same process twice where a file from my local pc is transferred to a server over ftp. After the second run, the file on the ftp would still be from the first run!
Thanks, Justin
You set the Ftp2.RestartNext property = true, and this indicates that the upload is to be resumed. If you are not resuming an upload, make sure that RestartNext = false so that the entire file is uploaded and the destination file is overwritten.
Please post the contents of the LastErrorText (with VerboseLogging turned on) so I can see what transpired..
Chilkat, thanks for your concerns and explanation. I am certainly writing to the same remote path. The problem persists...here is the LastErrorText you asked for extracted exactly after the response from PutFile during the second run (when the file is supposed to overwrite but did not!).
ChilkatLog:
PutFile(390ms):
DllDate: Oct 1 2014
ChilkatVersion: 9.5.0.44
UnlockPrefix: EPHREMFTP
Username: WS20:justin.farrugia
Architecture: Little Endian; 32-bit
Language: .NET 4.5
VerboseLogging: 1
LocalFilename: C:Usersjustin.farrugiaDesktopJustinTasks7 - StatementsTemp00047095841000002630004709584100000263_2015-5-17.pdf
RemoteFilename: 0004709584100000263_2015-5-17.pdf
ProgressMonitoring:
enabled: yes
heartbeatMs: 0
sendBufferSize: 65536
--ProgressMonitoring
IdleTimeoutMs: 60000
ReceiveTimeoutMs: 60000
ConnectTimeoutSeconds: 60000
uploadFromLocalFile(390ms):
localFileSize: 115352
uploadFromDataSource(390ms):
initialGreeting: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 25 allowed.
220-Local time is now 07:14. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
restartNext: 1
modeZ: 0
binaryMode: 1
setupResumeUpload(63ms):
sizeCmd(63ms):
sizeCmdInner(63ms):
sendCommand:
sendingCommand: SIZE 0004709584100000263_2015-5-17.pdf
--sendCommand
readCommandResponse(63ms):
replyLineQP: 213 115352
commandResponse: 213 115352
statusCode: 213
readResponse: Elapsed time: 63 millisec
--readCommandResponse
size: 115352
--sizeCmdInner
--sizeCmd
SizeCommandForAppendRestart: Elapsed time: 63 millisec
--setupResumeUpload
pbsz_protp(109ms):
sendCommand:
sendingCommand: PBSZ 0
--sendCommand
readCommandResponse(47ms):
replyLineQP: 200 PBSZ=3D0
commandResponse: 200 PBSZ=0
statusCode: 200
readResponse: Elapsed time: 47 millisec
--readCommandResponse
sendCommand:
sendingCommand: PROT P
--sendCommand
readCommandResponse(62ms):
replyLineQP: 200 Data protection level set to "private"
commandResponse: 200 Data protection level set to "private"
statusCode: 200
readResponse: Elapsed time: 62 millisec
--readCommandResponse
--pbsz_protp
setupDataConnection(94ms):
passive transfer mode
setupPassiveDataSocket(94ms):
sendCommand:
sendingCommand: PASV
--sendCommand
readCommandResponse(47ms):
replyLineQP: 227 Entering Passive Mode (77,72,202,10,117,95)
commandResponse: 227 Entering Passive Mode (77,72,202,10,117,95)
statusCode: 227
readResponse: Elapsed time: 47 millisec
--readCommandResponse
PassiveHostAddress: 77.72.202.10
passiveHostAddr: 77.72.202.10
dataConnect(47ms):
hostname: 77.72.202.10
port: 30047
socket2Connect(47ms):
connect2(47ms):
hostname: 77.72.202.10
port: 30047
ssl: 0
connectSocket(47ms):
domainOrIpAddress: 77.72.202.10
port: 30047
connectTimeoutMs: 60000000
connect_ipv6_or_ipv4(47ms):
This is an IPV4 numeric address.
Domain to IP address resolution not needed.
AddrInfoList:
AddrInfo:
ai_flags: 4
ai_family: 2
ai_socktype: 1
ai_protocol: 0
ai_addrlen: 16
ai_canonname: (NULL)
--AddrInfo
--AddrInfoList
connecting to IPV4 address...
ipAddress: 77.72.202.10
connect(47ms):
Waiting for the connect to complete...
myIP: 192.168.10.55
myPort: 54679
socket connect successful.
--connect
--connect_ipv6_or_ipv4
--connectSocket
--connect2
--socket2Connect
socketOptions:
SO_SNDBUF: 8192
SO_RCVBUF: 8192
TCP_NODELAY: 0
--socketOptions
dataConnectSuccess: 1
--dataConnect
--setupPassiveDataSocket
setupPassiveDataSocket: Elapsed time: 94 millisec
--setupDataConnection
sendUploadCommand:
sendCommand:
sendingCommand: APPE 0004709584100000263_2015-5-17.pdf
--sendCommand
--sendUploadCommand
convertDataConnToSsl(62ms):
convertToTls(62ms):
clientHandshake(62ms):
clientHandshake2(62ms):
processHandshakeRecord:
processHandshakeMessage:
processServerHello:
HelloExtension: renegotiation_info
HelloExtensionLen: 1
--processServerHello
--processHandshakeMessage
--processHandshakeRecord
--clientHandshake2
--clientHandshake
Secure Channel Established.
--convertToTls
ConvertToTls: Elapsed time: 62 millisec
--convertDataConnToSsl
Reading intermediate response for upload...
readCommandResponse:
replyLineQP: 150 Accepted data connection
commandResponse: 150 Accepted data connection
statusCode: 150
readResponse: Elapsed time: 0 millisec
--readCommandResponse
intermediateResponseStatusCode: 150
intermediateReply: 150 Accepted data connection
sendUploadFileData:
sendBufferSize: 65536
Sending uncompressed...
UploadData: Elapsed time: 0 millisec
--sendUploadFileData
closingDataConnection(62ms):
shutdownChannel(62ms):
sending close notify...
sendCloseNotify:
Turning on TCP_NODELAY.
--sendCloseNotify
reading SSL/TLS close notify...
(bForceClose) socket shutdown..
terminateConnection(15ms):
TCP connection cleanly closed by peer.
Cleanly terminated TCP connection.
--terminateConnection
--shutdownChannel
--closingDataConnection
skipFinalReply: 0
Reading final response...
readCommandResponse:
replyLineQP: 226 File successfully transferred
commandResponse: 226 File successfully transferred
statusCode: 226
readResponse: Elapsed time: 0 millisec
--readCommandResponse
FinalReply: Elapsed time: 0 millisec
uploadRate: 0
cumulativeNumBytesSent: 0
--uploadFromDataSource
--uploadFromLocalFile
TotalTime: Elapsed time: 390 millisec
Success.
--PutFile
--ChilkatLog