met ftp in php een bestand uploaden, kan dat?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcus geleyn

marcus geleyn

20/11/2011 20:13:17
Quote Anchor link
Hoi beste mensen,
kan iemand mij zeggen wat er mis is met onderstaand script? Ik heb dit van het internet gehaald om vanuit een php webpagina een file up te loaden via ftp om zo het inputformulier te omzeilen.
Mijn dochter moet namelijk regelmatig 10 foto's in een nieuwe map op haar site zetten en ik zou dit willen automatiseren zodat ze eigenlijk enkel de naam van de nieuwe map moet invoeren en dat de rest achter de schermen afgehandeld wordt. Zonder 10 keer te moeten bladeren en dan een submit-toets in te moeten drukken. Ik dacht als het met 1 foto zou willen lukken, dan herhaal ik dit 10 keer en hopla.
Helaas, met onderstaand script komen er in ieder geval geen foutmeldingen meer, maar er wordt ook niets in de map "upload" geplaatst.

Kan iemand mij helpen, ik weet ondertussen al iets over de beveiliging van PHP die dit onmogelijk maakt. Is er een ftp-client te integreren die enkel maar naar de gewenste folder moet kunnen uploaden? Met een SHELL opdracht of HPH schijnt dat te kunnen, maar daar ken ik helemaal niets van.

Please help.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$ftp_server
= "mijndomein.be";
$ftp_user_name = "naam";
$ftp_user_pass = "paswoord";
$file = "c:/Users/Marc/Desktop/bestelscript/werkmap6/foto1.jpg";
$remote_file = '/alduid/public_html/upload';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
put. "c:/Users/Marc/Desktop/bestelscript/werkmap6/foto1.jpg['public_html/upload']";
// close the connection
ftp_close($conn_id);
?>
 
PHP hulp

PHP hulp

27/04/2024 06:11:03
 
- SanThe -

- SanThe -

20/11/2011 21:42:48
Quote Anchor link
Ik doe dit nooit dus ik weet er weinig van.

Maar zoals je in je script al kan zien gaat 'put.' (is geen link) niet werken want dat is geen php.

Kijk op php.net eens naar alle php functions.

# ftp_ alloc
# ftp_ cdup
# ftp_ chdir
# ftp_ chmod
# ftp_ close
# ftp_ connect
# ftp_ delete
# ftp_ exec
# ftp_ fget
# ftp_ fput
# ftp_ get_ option
# ftp_ get
# ftp_ login
# ftp_ mdtm
# ftp_ mkdir
# ftp_ nb_ continue
# ftp_ nb_ fget
# ftp_ nb_ fput
# ftp_ nb_ get
# ftp_ nb_ put
# ftp_ nlist
# ftp_ pasv
# ftp_ put
# ftp_ pwd
# ftp_ quit
# ftp_ raw
# ftp_ rawlist
# ftp_ rename
# ftp_ rmdir
# ftp_ set_ option
# ftp_ site
# ftp_ size
# ftp_ ssl_ connect
# ftp_ systype
 
Marcus geleyn

marcus geleyn

20/11/2011 22:00:41
Quote Anchor link
Dat heb ik al gedaan, maar dan krijg ik steeds een foutmelding dat de stream niet kan geopend worden. het 'put.' heb ik van een engelstalig forum gehaald waar men dit op een andere topic als foutoplossing gaven. En inderdaad, geen fouten meer maar ook niets upgeload.
 
Jordi Kroon

Jordi Kroon

20/11/2011 22:03:35
Quote Anchor link
ftp_connect();
 
- SanThe -

- SanThe -

20/11/2011 22:30:21
Quote Anchor link
Van php.net gehaald. Dit voorbeeld zal, na aanpassing van de gegevens, toch gewoon werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$file
= 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
}
else {
 echo "There was a problem while uploading $file\n";
}


// close the connection
ftp_close($conn_id);
?>
Gewijzigd op 20/11/2011 22:31:16 door - SanThe -
 
Marcus geleyn

marcus geleyn

20/11/2011 22:40:31
Quote Anchor link
Dat script heb ik als voorbeeld gegeven, maar de IF instructie weggelaten. De poster van dat script is vergeten om ($ftp_server) op te nemen ( heb ik er zelf bijgezet).
Volgens ik overal al gelezen heb heeft PHP geen toegang tot je eigen computer, maar dan vraag ik mij af waar de ftp statements dan toe dienen.

Jordi Kroon, bedankt, maar dat gebruik ik ook.

Lastige job hé, 'k weet het ook niet meer.
 
- SanThe -

- SanThe -

20/11/2011 22:46:14
Quote Anchor link
Als je dit wilt gebruiken zal er op die pc een webserver en php moeten draaien. Dit kan niet vanaf een host en dan files op een gewone pc ophalen.

Waarom niet gewoon een ftp-programma gebruiken. Die zijn best simpel.
 
Marcus geleyn

marcus geleyn

20/11/2011 23:30:49
Quote Anchor link
Een ftp programma gebruiken we nu ook, maar ik wil heel de boel automatiseren zodat ze enkel de naam van de klant moet ingeven die dan meteen ook de nieuwe dir vormt en dat dan gans het proces begint van uploaden, mail versturen, ect. Gewoon met één klantnaam in te vullen. Nu is het veel poespas.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.