How to read the contents of a folder on a web server via ftp
Posted: Thu Apr 27, 2017 8:21 am
How to read the contents of a folder on a web server via ftp?
I'm using the following program:
[/size]
(Boris Borzic is the CTO & President of Xb2.NET Inc. http://www.xb2.net).
To display the folder contents I use the example from Roger:
[/size]
(Roger Donnay)
Example Roger works well on the array, which is formed locally (aDir := Directory() ). But if you use an array containing information about the files in the folder on the web server (aDir := oFtp:Directory() ), it turns out that something is not right:
I'm using the following program:
Code: Select all
mApplName = "Applications-"+STRTRAN(STR(VAL(ALLTRIM(WebAppls->Num_Appl)),6),' ','0')
cGDServer:="ftp://j90540lw.beget.tech"
oFtp := XbFTPClient():new()
IF oFtp:Connect(cGDServer) // Соединение
IF oFtp:Login(Ftp_User, Ftp_Passw) // Авторизация
**** Сделать текущей папку приложения: ftp://j90540lw.beget.tech/aidos/public_html/
* ftp://j90540lw.beget.tech/Source_data_applications/'+mApplName
if ! oFtp:SetCurrentDirectory("aidos/public_html/")
* if ! oFtp:SetCurrentDirectory('aidos/public_html/Source_data_applications/'+mApplName)
LB_Warning('Не удалось сделать текущей директорию: "aidos/public_html/Source_data_applications/'+mApplName+'"', '(C) Система "Эйдос-Х++"' )
RETURN NIL
endif
oFtp:PassiveMode:=.T. // Пассивный режим
PUBLIC aDir := oFtp:Directory() // Борис Борзик, для этого нужен только FTP, т.к. под HTTP не работает oHttp:Directory()
* DC_DebugQout(aDir)
* Thread():new():start({||GuiBrowse(aDir)}) // Отображение массива с данными о файлах директории на FTP-сервере (для отладки, как в browtest.prg)
(Boris Borzic is the CTO & President of Xb2.NET Inc. http://www.xb2.net).
To display the folder contents I use the example from Roger:
Code: Select all
FUNCTION GuiBrowse()
LOCAL GetList[0], oBrowse, bColorSize, bColorDate
* bColorSize := {|n|n:=DC_GetColArray(2,oBrowse),IIF(n>10000 ,{nil,GRA_CLR_GREEN},{nil,GRA_CLR_YELLOW})}
bColorDate := {|d|d:=DC_GetColArray(7,oBrowse),IIF(d=Date(),{nil,GRA_CLR_BROWN},{nil,GRA_CLR_PINK})}
@ 0,0 DCBROWSE oBrowse DATA aDir ;
PRESENTATION DC_BrowPres() ;
SIZE 100, 20 FIT ;
HEADLINES 2 ;
FONT '8.Lucida Console' ;
COLOR {||IIF(oBrowse:arrayElement%2==0,nil,{nil,GraMakeRGBColor({230,252,213})})} // Вывод поля цветом RGB
DCBROWSECOL ELEMENT 1 HEADER 'F1' WIDTH 13 PARENT oBrowse
* DCBROWSECOL ELEMENT 2 HEADER 'F2' WIDTH 10 PARENT oBrowse COLOR bColorSize
DCBROWSECOL ELEMENT 2 HEADER 'F2' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 3 HEADER 'F3' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 4 HEADER 'F4' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 5 HEADER 'F5' WIDTH 3 PARENT oBrowse
DCBROWSECOL ELEMENT 6 HEADER 'F6' WIDTH 3 PARENT oBrowse PICTURE '9'
* DCBROWSECOL ELEMENT 7 HEADER 'F7' WIDTH 10 PARENT oBrowse COLOR bColorDate
DCBROWSECOL ELEMENT 7 HEADER 'F7' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 8 HEADER 'F8' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 9 HEADER 'F9' WIDTH 10 PARENT oBrowse
DCBROWSECOL ELEMENT 10 HEADER 'F10' WIDTH 10 PARENT oBrowse
DCREAD GUI FIT TITLE 'Browse Test'
ReTURN nil
(Roger Donnay)
Example Roger works well on the array, which is formed locally (aDir := Directory() ). But if you use an array containing information about the files in the folder on the web server (aDir := oFtp:Directory() ), it turns out that something is not right: