[PHP] fonction FTP_ et upload à partir d'un disque local

fonction FTP_ et upload à partir d'un disque local [PHP] - Programmation

Marsh Posté le 09-12-2001 à 02:12:06    

Salut,
 
je sais un peu utiliser les fonctions FTP genre ftp_connect(...) etc, et je sais télécharger un fichier d'un site (où se trouve la page PHP) vers un autre site.
 
Maintenant, je voudrais créer une page PHP qui permette d'uploader un fichier sur un serveur, la source se trouvant sur le disque dur de l'internaute. (sans utiliser CuteFTP, juste à partir d'une page PHP).
 
Comment fait-on pour accéder au disque dur de l'utilisateur?
 
j'ai essayé :  
 
$source_file = "file:///c: /0/source.txt";
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
 
mais cela ne fonctionne pas, évidemment...
any help for me?
 
thanks :-)
 
ps : la réponse trouvée en recherchant à http://forum.hardware.fr/forum2.php3?post=7845&cat=10 ne m'a pas vraiment aidée
 
___________________
le code complet de mon fichier :
<html><body>
<?php
$ftp_server = "ftp.multimania.com" ;
$ftp_user_name = "xxxxxxxxx" ;
$ftp_user_pass = "zzzz123" ;
$destination_file = "destination.txt" ;
$source_file = "file:///c: /0/source.txt" ;
 
// création de la connexion
$conn_id = ftp_connect("$ftp_server" );
// authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué!";
        echo "Tentative de connexion à $ftp_server avec $user";
        die;
    } else {
        echo "Connecté à $ftp_server, avec $user";
    }
// téléchargement d'un fichier
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// Vérification de téléchargement
if (!$upload) {
        echo "Le téléchargement Ftp a échoué!";
    } else {
        echo "Téléchargement de $source_file sur $ftp_server en $destination_file";
    }
// fermeture de la connexion FTP.
ftp_quit($conn_id);
?>
</body></html>

 

[edtdd]--Message édité par flyjodel--[/edtdd]

Reply

Marsh Posté le 09-12-2001 à 02:12:06   

Reply

Marsh Posté le 09-12-2001 à 02:15:09    

question subsidiaire :
______________________
 
est-ce que les fonctions FTP_xxx marchent chez multimania?
 
Parceque moi, je n'arrive pas à les utiliser de chez eux. Le message :
Fatal error: Call to undefined function: ftp_connect() in /ftp_test.php on line 15
 
et pourtant j'ai activé le mode PHP

 

[edtdd]--Message édité par flyjodel--[/edtdd]

Reply

Marsh Posté le 10-12-2001 à 02:29:40    

flyjodel a écrit a écrit :

 
Comment fait-on pour accéder au disque dur de l'utilisateur?




Normalement on peut pas. Enfin j'espere.
Mais tu peux faire de l'upload avec un formulaire.
Je te post un exemple de code demain. Tout a l'heure quoi.

Reply

Marsh Posté le 10-12-2001 à 03:42:52    

hola ........
 
1-comment veux tu faire un U/L en passant par FTP si l'utilisateur n'a pas de client FTP sur son PC  :??:  :lol:  
 
2-pour ton message d'erreur : les fonctions FTP sont directement intégrés dans le PHP depuis le 3.x (je crois), donc si tu as cette erreur c'est que ton hebergeur (gratuit evidemment :sarcastic: ) les a coupé .
 
3-tu as plein de soluces pour acceder du DD du visiteur, mais la plus simple pour toi sera de faire passer les fichiers par les headers HTTP ce qui te permettra de contourner 95% des protections anti-U/L
 
4-quand tu connais pas la config d'un serveur il faut prendre le bon reflexe : phpinfo();

 

[edtdd]--Message édité par potiron--[/edtdd]

Reply

Marsh Posté le 10-12-2001 à 10:45:49    

Voila 1 petit truc simple te permettant d uploader un fichier via un formulaire
 
Deja ta balise form doit etre de ce type
 
<form enctype="multipart/form-data" method="post" action="upload.php">
 
Tu y met un champs file bien sur avec comme nom "fichier" par exemple
 
Ensuite dans ton script upload.php
 
<?
$data = fread(fopen($fichier, "r" ), filesize($fichier));  
fwrite(fopen("repertoire_destination/fichier.xxx", "w" ), $data);
?>
 
En fait ce script ouvre le fichier temporaire que tu upload il lit le contenu, creer un nouveau fichier dans le repertoire de destination et copie le contenu du fichier temp dedans.
 
tu doit egalement faire gaffe a certains parametre dans ton php.ini car la limite d upload par ce moyen est de 2 mo par defaut (multimania peut avoit avoir brider cette fonction a 10 ko :D )

Reply

Marsh Posté le 10-12-2001 à 13:53:11    

super ces réponses... j'ai trouvé sur www.phpdebutant.com un code source aui fonctionne bien aussi, cool !
 
bon je continue à explorer toutes ces possibilités...
 
potiron : tu peux m'en dire plus sur les fonctions placées dans les HEADER pour contourner les port U/L ? (notamment avec multimania)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed