PDA

Bekijk Volledige Versie : Ftp ondersteuning PHP



Jon van Dorsten
14/02/03, 15:55
Hallo,

Ik kwam tegen dat het mogelijk is om FTP ondersteuning in PHP te gebruiken
op onze webserver,
Dit wou ik gebruiken omdat het voor ons noodzakelijk is om te controleren of
een bestand (update) volledig gedownload is.

Mocht dit niet gaan werken dan zijn andere ideeën om te controleren of een
bestand volledig binnen is ook welkom.
Dus iemand ideeën over dit script of mischien een andere mogelijkheid
waarmee ik kan controleren of de gebruiker de download niet halverwege heeft
afgebroken?

Alles lukt via PHP alleen het downloaden van het bestand niet, ik heb het
volgende testscript geschreven:

Alvast bedankt.

<?php
$ftp_server = "***";
$ftp_user_name = "***";
$ftp_user_pass = "***";

// maak een basis connectie aan
$conn_id = ftp_connect($ftp_server);

// meldt je aan met een gebruikersnaam en wachtwoord
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// controleer de verbinding
if ((!$conn_id) || (!$login_result)) {
echo "FTP connectie is mislukt!";
echo "Probeerde naar <B>$ftp_server</B> te verbinden met de
gebruiker $ftp_user_name<BR><BR>";
exit;
} else {
echo "Verbonden met FTP server: <B>$ftp_server</B>, als gebruiker
$ftp_user_name<BR><BR>";
}

// navigeren naar de downloadmap
if (ftp_chdir ($conn_id, "/usr/local/WWW/www.snelstart.nl/ftp/WIN")) {
echo "Navigeren naar map WIN<P>";
} else {
echo "Niet gelukt om naar de map WIN te gaan<P>";
}

// laat de bestanden in de huidige map zien
echo "bestanden weergeven:<BR>";
foreach(ftp_nlist($conn_id, '') as $entry) {
echo $entry." ".ftp_size($conn_id,$entry)." bytes<BR>";
}


echo "<BR><B>Download bestand $entry</B><BR><BR>";
$source_file = $entry; // in dit geval is het laatste bestand het bestand
dat gedownload moet worden
$destination_file = "C:\JetSp3E.exe";

// time out verhogen zodat download volledig kan voltooien
if (ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 300)) {
echo "Time out verhoogt naar 300 sec.<BR>";
} else {
echo "Time out kon niet verhoogt worden.<BR>";
}

//download het bestand
$download = ftp_get($conn_id, $destination_file, $source_file, FTP_BINARY);

// controleer de download status
if (!$download) {
echo "FTP download is mislukt!";
} else {
echo "Gedownload: $source_file naar $ftp_server als
$destination_file";
}

// sluit de FTP stream
ftp_close($conn_id);
?>

Ronald Paul
14/02/03, 16:15
"Jon van Dorsten" <no@spam.mail> schreef:

>Ik kwam tegen dat het mogelijk is om FTP ondersteuning in PHP te gebruiken
>op onze webserver,
>Dit wou ik gebruiken omdat het voor ons noodzakelijk is om te controleren of
>een bestand (update) volledig gedownload is.

Hoe wilde je dat doen door een bestand via FTP te downloaden? De
gebruikers die die update downloaden hebben toch niet allemaal een
FTP-server? Hoe moet ik dit zien?

>Alles lukt via PHP alleen het downloaden van het bestand niet,

Geen foutmeldingen?

--
Groet, Ronald

Rene Pijlman
14/02/03, 16:15
Jon van Dorsten:
>Dus iemand ideeën over dit script of mischien een andere mogelijkheid
>waarmee ik kan controleren of de gebruiker de download niet halverwege heeft
>afgebroken

Ik snap het verband nog niet helemaal tussen de download van de
eindgebruiker (van jouw webserver neem ik aan), PHP en FTP in
PHP. Wie downloadt wat en hoe van waar naar waar en wat denk je
daaraan te doen met FTP in PHP?

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Jon van Dorsten
17/02/03, 10:05
De download staat op onze ftp server, de bedoeling is uiteindelijk het
volgende:

De gebruiker logt in op onze website met zijn klantnummer en een wachtwoord,
daarna kan hij een update downloaden.
op het moment dat hij de update volledig heeft gedownload moet ik dit weten.
dit ivm het versienummer.

als de update halverwege wordt afgebroken moet zijn versienummer niet worden
opgehoogt, op het moment dat hij hem volledig binnen heeft moet pas het
versienummer worden opgehoogd.

Ik hoop dat jullie hier voldoende aan hebben en hier mischien nog ideeën
over hebben, dit hoeft natuurlijk niet perse via FTP.

Jon

"Rene Pijlman" <reageer.in@de.nieuwsgroep> schreef in bericht
news:ak1q4v0ccv0a01ea0a12jks3lpdek13oec@4ax.com...
> Jon van Dorsten:
> >Dus iemand ideeën over dit script of mischien een andere mogelijkheid
> >waarmee ik kan controleren of de gebruiker de download niet halverwege
heeft
> >afgebroken
>
> Ik snap het verband nog niet helemaal tussen de download van de
> eindgebruiker (van jouw webserver neem ik aan), PHP en FTP in
> PHP. Wie downloadt wat en hoe van waar naar waar en wat denk je
> daaraan te doen met FTP in PHP?
>
> --
> René Pijlman
>
> Wat wil jij leren? http://www.leren.nl

Rene Pijlman
17/02/03, 10:25
Jon van Dorsten:
>De download staat op onze ftp server, de bedoeling is uiteindelijk het
>volgende:
>
>De gebruiker logt in op onze website met zijn klantnummer en een wachtwoord,
>daarna kan hij een update downloaden.
>op het moment dat hij de update volledig heeft gedownload moet ik dit weten.
>dit ivm het versienummer.

Je zou in de handleiding van je FTP-server moeten kijken of die
een succesvolle download op een bepaalde manier logt, of
geconfigureerd kan worden om na een succesvolle download een
aktie uit te voeren.

Dan nog vraag ik me af of een succesvolle download vanaf de
server ook per se betekent dat de download succesvol is
afgesloten op de client. Het lijkt me niet erg betrouwbaar. Ik
heb een downloadservice ook nog nooit dit soort trucs zien
uithalen.

In ieder geval heeft dit niets met PHP te maken.

En nog een verzoek:
Zou je zo vriendelijk willen zijn te quoten zoals in deze
nieuwsgroup gebruikelijk is? Dat wordt hier zeer op prijs
gesteld. Hoe dat gaat lees je op
http://www.hensema.net/quote/quote.html
Alvast hartelijk dank. (c) ETB

--
René Pijlman

Wat wil jij leren? http://www.leren.nl