The PutFile method copies an existing file from the local
          system to the server. If the local file already exists, it is
          overwritten.
          Note that not all servers honor the request to restart a file
          transfer. Notably, a Windows IIS server will return an error if a
          non-zero restart offset is specified. It is not recommended that you
          restart text file transfers since differences between end-of-line
          characters can result in byte offset differences between the local
          and server system.
          If the AppendFile property is True, then the file contents
          will be appended to the file specified on the server, if it exists.
          Otherwise, the remote file will be overwritten.
          Note that PutFile for HTTP requires that the server support
          the PUT command. This typically requires that you specify version 1.1
          of the protocol and authenticate the client session with a user name
          and password.
          A value of zero is returned if the operation was successful,
          otherwise a non-zero error code is returned which indicates the cause
          of the failure.