The PutData method transfers data from a local buffer and
stores it on a file on the server. This method will cause the current
thread to block until the file transfer completes, a timeout occurs
or the transfer is canceled. During the transfer, the
OnProgress event will fire periodically, enabling the
application to update any user interface objects such as a progress
bar.
If you are using a String buffer, the contents of the buffer
will automatically be converted to UTF-8 encoded text. Most
applications support UTF-8 encoding, however if you need to store the
text using a different encoding you can change the value of the
CodePage property and use the PutText method instead.
Never use a String variable to upload binary data. This
method will automatically attempt to convert the contents of the
string to UTF-8 encoded text and this can corrupt the data. If you
need to upload binary data using the PutData method, you should
always use a Byte array.
The value specified with the Length parameter may not be
identical to the size of the text file created on the server. The
end-of-line conventions may differ between the server and the local
system, and conversion to Unicode may cause differences in the
character count. For example, if this method is used to upload text
which includes non-ASCII characters, those characters will be UTF-8
encoded. If you want to upload an exact copy of the data in your
buffer, make sure the FileType property is set to ftpFileTypeBinary
and use a Byte array instead of a String
variable.