Загрузка файлов на ФТП - tEasyFTP (Sourcemod)
Плагин реализует возможность загрузки файлов с вашего сервера на FTP адрес, указанный в конфигурации. Плагин находится в бета-релизе и не может считаться полноценным.
Файл конфигурации называется под именем RemoveTargets.cfg, который лежит в /addons/sourcemod/configs и выглядит следующим образом:
"RemoteTargets"
{
"example"
{
"host" "example.com"
"port" "21"
"user" "ftpuser"
"password" "ftppass"
"path" "/"
"ssl" "try"
"CreateMissingDirs" "1"
}
}
{
"example"
{
"host" "example.com"
"port" "21"
"user" "ftpuser"
"password" "ftppass"
"path" "/"
"ssl" "try"
"CreateMissingDirs" "1"
}
}
Вы можете использовать эту функцию + обратную функцию для загрузки файла:
functag EasyFTP_FileUploaded public(const String:sTarget[], const String:sLocalFile[], const String:sRemoteFile[], iErrorCode, any:data);
native EasyFTP_UploadFile(const String:sTarget[], const String:sLocalFile[], const String:sRemoteFile[], EasyFTP_FileUploaded:func, any:data = 0);
native EasyFTP_UploadFile(const String:sTarget[], const String:sLocalFile[], const String:sRemoteFile[], EasyFTP_FileUploaded:func, any:data = 0);
Например:
EasyFTP_UploadFile("demos", "myDemoFile.dem", "/", EasyFTP_CallBack);
И еще:
public EasyFTP_CallBack(const String:sTarget[], const String:sLocalFile[], const String:sRemoteFile[], iErrorCode, any:data)
{
if(iErrorCode == 0) // These are the cURL error codes
{
PrintToServer("Success. File %s uploaded to %s.", sLocalFile, sTarget);
} else {
PrintToServer("Failed uploading %s to %s.", sLocalFile, sTarget);
}
}
{
if(iErrorCode == 0) // These are the cURL error codes
{
PrintToServer("Success. File %s uploaded to %s.", sLocalFile, sTarget);
} else {
PrintToServer("Failed uploading %s to %s.", sLocalFile, sTarget);
}
}