/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Webftp
Fra : Henrik


Dato : 29-04-02 13:14

Hej i gruppen,

Jeg har brug for et program, som kan tilkoble sig en ftp-server med
brugernavn og adgangskode - man skal kunne uploade, downloade, omdøbe og
slette filer. Dog skal det hele foregå via en web-browser.

Jeg har så fundet et program på nettet som passer helt perfekt til det
formål( http://www.v-wijk.net/webftp/ ) og har endda fået lov af
programmøren at tilrette det som jeg ønsker. Problemet er bare, at den
ftp-server jeg skal koble op på, er en Novell Netware server - webftp er
bygget således, at den kun kender unix' og windows' filstrukturer, men
parser altså ikke alt andet. Desværre rækker mit programmerings-kendskab
ikke til at kunne bygge en novell-parser.

Derfor er mit spørgsmål, om nogen kender et lignende program, som altså godt
kan logge ind på en novell-server?
Selve PHP-filen skal ligge på en linux-webserver, som ligger på samme
interne net som novell-serveren.

Med venlig hilsen
Henrik...



 
 
Christian Joergensen (29-04-2002)
Kommentar
Fra : Christian Joergensen


Dato : 29-04-02 19:50

On Mon, 29 Apr 2002 14:13:30 +0200, Henrik wrote:

> Jeg har brug for et program, som kan tilkoble sig en ftp-server med
> brugernavn og adgangskode - man skal kunne uploade, downloade, omdøbe og
> slette filer. Dog skal det hele foregå via en web-browser.

Prøv at lave noget selv. Start med at kigge på PHP's ftp funktioner. Hvis
du støder ind i noget du ikke umiddelbart kan finde ud af, skal du være
velkommen til at spørge :)

--
Christian Jørgensen | Never test for a bug you don't know how to fix.
http://www.razor.dk |

Henrik (30-04-2002)
Kommentar
Fra : Henrik


Dato : 30-04-02 10:21

"Christian Joergensen" <mail@phpguru.dk> skrev i en meddelelse
news:pan.2002.04.29.18.49.53.505105.26878@phpguru.dk...

> Prøv at lave noget selv. Start med at kigge på PHP's ftp funktioner. Hvis
> du støder ind i noget du ikke umiddelbart kan finde ud af, skal du være
> velkommen til at spørge :)

okay. Jeg har lavet lidt selv til det omtalte program og kan ikke rigtig
komme videre. Mit problem består egentlig i, at tolke novells filstruktur.
webftp virker faktisk rigtig fint - programmøren har bare valgt at lave en
slags parser, så udskriften af filer/biblioteker bliver opstilt på en
overskuelig måde, man kan klikke på i stedet for at skrive ftp-kommandoer
manuelt. Han har så valgt kun at lave det til unix og windows.

Sidst i mailen, har jeg sat starten ind af original-koden til webftp.

I stedet for UNIX har jeg skrevet NETWARE, da det er det, ftpd sender
tilbage til php.

function parse_ftp_rawlist($list, $type="NETWARE") {
if ($type == "NETWARE")

i $regexp har jeg bikset mig frem til:

$regexp =
"([-|d]{1})[ ]+([-\[\]RWCEAFMS]{10})[ ]+([A-Z|0-9|-]+)[ ]+([0-9]+)[ ]+([A-Z]
{3}[ ]+[0-9]{2}[ ]+[0-9:]{4,5})[ ]+(.*)";

Dette har jeg gjort ud fra, ved at skrive ls i et ftp-program med
tilslutning til en novellserver, som giver dette (en bruger kan også være et
tal):

- [RWCEAFMS] hsk 795 Sep 25 2001 bottom.htm
- [RWCEAFMS] hsk 20023 Sep 01 1999 brev.fh8
- [RWCEAFMS] hsk 33255 Mar 06 2001
certificate.gif
d [RWCEAFMS] hsk 512 Mar 06 2001 dfh

Men jeg er ikke sikker på, om $regexp er korrekt og om det måske er lidt OT
her - jeg ved ikke, om det er sådan novells filstruktur bliver tolket?

ved resten skriver jeg:

if (!eregi("^[.]", $regs[6])) //verbergen hidden files
if (!eregi("^[.]{2}", $regs[6])) // niet verbergen hidden files
{
$i++;
if (eregi("^[d]", $regs[1]))
{
$is_dir = TRUE;
}
elseif (eregi("^[-]", $regs[1]))
{
$is_link = TRUE;
list($regs[6], $target) = split(" -> ", $regs[6]);
}
$files[$i] = array (
"is_dir" => $is_dir,
"name" => $regs[6],
"dire" => $regs[1],
"perms" => $regs[2],
"user" => $regs[3],
"size" => $regs[4],
"date" => $regs[5],
"is_link" => $is_link,
"target" => $target );

Når jeg har lavet disse ændringer, sker der ingenting via programmet i
browseren. Som om, jeg ikke havde lavet nogle ændringer. Jeg har klikket
opdater i min browser (og ændret skriftfarven og sådan for lige at være
sikker på, at ændringerne er kommet med).

Jeg er sådan lidt på bar bund, da jeg ikke har så meget kendskab med php.
Jeg håber ikke, det er en lidt for stor mundfuld - Men jeg har bare fulgt
dit råd nu Christian, ved at vende tilbage og spørge...

- Hilsen Henrik...





<?php
$downloadDir = "/tmp/";

function parse_ftp_rawlist($list, $type="UNIX") {
if ($type == "UNIX")
{
$regexp =
"([-ldrwx]{10})[ ]+([0-9]+)[ ]+([A-Z|0-9|-]+)[ ]+([A-Z|0-9|-]+)[ ]+([0-9]+)[
]+([A-Z]{3}[ ]+[0-9]{1,2}[ ]+[0-9:]{4,5})[ ]+(.*)";
$i=0;
foreach ($list as $line)
{
$is_dir = $is_link = FALSE;
$target = "";

if (eregi($regexp, $line, $regs))
{
if (!eregi("^[.]", $regs[7])) //verbergen hidden files
if (!eregi("^[.]{2}", $regs[7])) // niet verbergen hidden files
{
$i++;
if (eregi("^[d]", $regs[1]))
{
$is_dir = TRUE;
}
elseif (eregi("^[l]", $regs[1]))
{
$is_link = TRUE;
list($regs[7], $target) = split(" -> ", $regs[7]);
}
$files[$i] = array (
"is_dir" => $is_dir,
"name" => $regs[7],
"perms" => $regs[1],
"num" => $regs[2],
"user" => $regs[3],
"group" => $regs[4],
"size" => $regs[5],
"date" => $regs[6],
"is_link" => $is_link,
"target" => $target );
}
}
}
}
else
{
: her kommer så kode til, hvordan windows skal se strukturen og tilsidst en
masse kode, hvad den skal vise alt efter, hvad man trykker osv...
Jeg har valgt ikke at proppe alt koden ind, da det måske ikke lige er velset
her i gruppen at proppe så meget ind.
Men koden kan altså hentes fra linket i mit første indlæg.



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste