Что нового

[Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/inde

urrya

Новичок
Сообщения
159
Репутация
1
Всем доброго времени суток уважаемые форумчане.
На днях понадобилось написать скрипт для отправки файлов на сервер.
Поискал в глобальной сети и нашёл тут, на этом форуме вроде бы хороший, простой пример.
Но вот незадача, никак не пойму почему на моём компьютере отказывается работать тот код :blink:
Пример скрипта из темы http://autoit-script.ru/index.php/topic,171.0.html

Код:
Opt('MustDeclareVars', 1)

Global Const $Host = ''
Global Const $Login = ''
Global Const $Password = ''
Global Const $Port = 21
Global Const $Passive = True
Global Const $Local = 'C:\MyFiles\test.txt'
Global Const $Remote = '/MyDir/test.txt'

Global $oFtp = 0

$oFtp = ObjCreate('Primalscript.FTPTransfer')
  ;If @error Then
  ;  _Quit(10)
  ;EndIf
$oFtp.Passive = $Passive
$oFtp.Port = $Port
If Not $oFtp.Connect($Host, $Login, $Password) Then
    _Quit(11)
EndIf
If Not $oFtp.Put($Remote, $Local) Then
    _Quit(12)
EndIf

Func _Quit($iCode)
    If IsObj($oFtp) Then
        $oFtp.Disconnect
    EndIf
    Exit($iCode)
EndFunc   ;==>_Quit



при попытке задействовать скрипт выдаёт ошибку

: ==> Variable must be of type "Object".:
$oFtp.Passive = $Passive
$oFtp^ ERROR

я к сожалению не могу сам понять в чём причина ошибки :scratch:
ОС Windows 7 x64
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

вот совсем простая функция Но, тоже не работает! :'(

Код:
#include <FTPex.au3>
#include <FTP.au3>
#include <File.au3>
#include <Array.au3>

Opt('MustDeclareVars', 1)
FtpSetProxy(1)

ftp()

Func ftp()

Local $s_LocalFile = @ScriptDir & "\_FTP_FilePut3.au3"
Local $s_RemoteFile = "/FTPTestfiles/_FTP_FilePut3.au3"
Local $server, $username, $pass, $Open, $Conn, $Ftpp, $Ftpc

$server = 'ftp.mysite.com'
$username = 'nickname'
$pass = '123123'

$Open = _FTP_Open('FTP')
$Conn = _FTP_Connect($Open, $server, $username, $pass)
$Ftpp = _FTP_FilePut($Conn, $s_LocalFile, $s_RemoteFile)
$Ftpc = _FTP_Close($Conn)
EndFunc


соединение с сервером вроде бы устанавливает, а вот записывать файлы в каталог не хочет(права на каталог 755)
помогите пжлста кто нибудь сделать функцию загрузки файлов на сервер :blink:


Добавлено:
Сообщение автоматически объединено:

вот этот скрипт отлично работает, но как его "вставить" в код Autoit ?

Код:
@ECHO OFF
TITLE Send to FTP
ECHO Send to FTP
ECHO Written by: Jason Faulkner
ECHO JasonFaulkner.com
ECHO Osmaster.org.ua
ECHO.
ECHO.

REM Использование:
REM обновить этот файл в соответствии с настройками соединения и скопировать ссылку на:
REM UserProfile%% \ AppData \ Roaming \ Microsoft \ Windows \ SendTo
REM
REM Теперь при выборе одного или нескольких файлов в Проводнике и щелкните правой кнопкой мыши, можно выбрать Отправить> FTP-сайта (или как там тебя ярлык под названием).
REM Если у вас несколько FTP сайтов, которые вы используете, вы можете создать несколько копий этого файла и добавить столько ярлыков, сколько необходимо для вашего меню Отправить.

SETLOCAL EnableExtensions

REM Информация о подключении:
SET Server=ftp.mysite.com
SET UserName=u777989
REM Если вы хотите жестко пароль (без запроса), введите его в первой строке ниже и оставьте вторую линию закомментировано (начинается с REM).
REM Если вы хотите, чтобы запрос на ввод пароля каждый раз, закомментируйте первой строке ниже (запустите его с REM) и раскомментируйте вторую строку (убрать REM).
SET Password=123123
REM SET /P Password=Enter the password for %UserName%:


SET Commands="%TEMP%\FTPCommands_%RANDOM%.txt"

REM FTP имя пользователя и пароль
ECHO %UserName%>> %Commands%
ECHO %Password%>> %Commands%

REM Если вам нужны файлы, чтобы пойти в соответствующий каталог вашего сайта FTP, раскомментировать и добавить строки по мере необходимости ниже

ECHO cd httpdocs >> %Commands%
ECHO cd mysite.com >> %Commands%
ECHO cd myfile >> %Commands%

REM ECHO cd имя_папки >> %Commands%
REM ECHO cd имя_папки >> %Commands%
REM ECHO cd имя_папки >> %Commands%

REM Настройки FTP передачи
ECHO binary >> %Commands%
SET 
:AddFiles
IF {%1}=={} GOTO CloseConnection
ECHO put "%~dpnx1" >> %Commands%
SHIFT /1
GOTO AddFiles

:CloseConnection
REM Закройте FTP соединение
ECHO clo5se >> %Commands%
ECHO bye >> %Commands%

REM Выполните FTP
FTP -d -i -s:%Commands% %Server%

ECHO.
ECHO.

REM убирать
IF EXIST %Commands% DEL %Commands%

ENDLOCAL
REM пауза
TIMEOUT /T 10

и к тому же я не знаю как в этот скрипт вставить ещё пару строк .
надо что бы скрипт брал имя файла для отправки на сервер - считывая его из указанной папки
а уж потом вставлял себе в
Код:
ECHO put "%~dpnx1" >> %Commands%
и заливал на сервер

:stars:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

urrya,
Попробуйте добавить пассивный режим.
Код:
$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in


Задача решена, не много иначе, но всё же ... .
Ниже пример. может кому и сгодится ;)

После того как основной скрипт Autoit создаёт файл в нужной папке,
запускаем батник .cmd (сценарий в той же папке что и батник)

Код:
Run('C\foldername\batnik.cmd')


Содержание .cmd

Код:
ftp -s:scn.txt
TIMEOUT /T 6

TIMEOUT /T 6 - пауза 6 секунд можно убрать или поставить своё значение

содержание файла scn.txt

Код:
open ftp.mysite.com                                   ; сервер
u12312312                                                ; логин 
123123123                                                ; пароль 
binary
cd //httpdocs/mysite.com/folder                    ; путь к каталогу (папка) на сервере в которую заливаем файл
send D:\foldername\windows5.ini                    ; путь и имя файла на компьютере
quit

вот и всё в принципе, делов то ... ;D
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

madmasles Спасибо за ответ, но я все варианты перепробавал, и не только с этого форума, и всё не так, не работало, только через батник нормально получилось ;)

Цитата: "Я уже несколько лет пытаюсь с помощью AutoIt залить файл на какой нибудь online сервис, пока безуспешно " http://autoit-script.ru/index.php/topic,5846.0.html
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

urrya,
А с помощью сторонних программ для FTP, например, filezilla заливаются файлы?
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

madmasles
Да, с помощью сторонних прог всё нормально заливаю.
Ума не приложу почему Autoit код не хочет работать :blink:
P.S. К стати именно "FileZilla" всегда и пользуюсь, очень удобная прога ;)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

urrya,
Я ежедневно в авто-режиме, с помощью функций FTPEx.au3, заливаю на два FTP-сервера по несколько файлов и произвожу другие манипуляции с файлами. Проблем не было никогда, если сервера работают. Если хотите, создайте на Вашем проблемном сервере тестовый аккаунт и дайте мне в ПМ данные. Попробую покопаться, вдруг получится.
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Re: [Сеть, интернет] не работает пример отправки файла на сервер из темы http://autoit-script.ru/in

madmasles

Да, действительно всё нормально работает.
Очень извиняюсь, но я сам виноват в том что не мог залить файлы на сервер.
Дело в том что я не прописывал имя самого передаваемого файла в путь на сервере, по этому то и не работал код Autoit :-[
Думал хватит указать путь до каталога и файл туда зальётся,
оказывается в Autoit этого мало и надо обязательно прописать в путь имя файла.

P.S. Полезный опыт невнимательности :smile:
 
Верх