Add append/overwrite parameter to Ftp::upload.

This commit is contained in:
irrmich 2016-03-18 16:12:03 +01:00 committed by Lukas Dürrenberger
parent 7be2111d61
commit 15d0f789c7
2 changed files with 7 additions and 3 deletions

View File

@ -475,16 +475,20 @@ public:
/// remote path is relative to the current directory of the /// remote path is relative to the current directory of the
/// FTP server. /// FTP server.
/// ///
/// The append parameter controls whether the remote file is
/// appended to or overwritten if it already exists.
///
/// \param localFile Path of the local file to upload /// \param localFile Path of the local file to upload
/// \param remotePath The directory in which to put the file on the server /// \param remotePath The directory in which to put the file on the server
/// \param mode Transfer mode /// \param mode Transfer mode
/// \param append Pass true to append to or false to overwrite the remote file if it already exists
/// ///
/// \return Server response to the request /// \return Server response to the request
/// ///
/// \see download /// \see download
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Response upload(const std::string& localFile, const std::string& remotePath, TransferMode mode = Binary); Response upload(const std::string& localFile, const std::string& remotePath, TransferMode mode = Binary, bool append = false);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Send a command to the FTP server /// \brief Send a command to the FTP server

View File

@ -322,7 +322,7 @@ Ftp::Response Ftp::download(const std::string& remoteFile, const std::string& lo
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Ftp::Response Ftp::upload(const std::string& localFile, const std::string& remotePath, TransferMode mode) Ftp::Response Ftp::upload(const std::string& localFile, const std::string& remotePath, TransferMode mode, bool append)
{ {
// Get the contents of the file to send // Get the contents of the file to send
std::ifstream file(localFile.c_str(), std::ios_base::binary); std::ifstream file(localFile.c_str(), std::ios_base::binary);
@ -346,7 +346,7 @@ Ftp::Response Ftp::upload(const std::string& localFile, const std::string& remot
if (response.isOk()) if (response.isOk())
{ {
// Tell the server to start the transfer // Tell the server to start the transfer
response = sendCommand("STOR", path + filename); response = sendCommand(append ? "APPE" : "STOR", path + filename);
if (response.isOk()) if (response.isOk())
{ {
// Send the file data // Send the file data