IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Faire un FTP par php


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Par défaut Faire un FTP par php
    Bonjour a tous

    J'aimerai savoir si y a un moyen de faire des upload de fichier par php. je veux faire un interface graphique pour que mes cliens puissent m'envoyer des fichiers directement du web(avec une page php). Et ça peut etre des gros fichier comme des PSD(Photoshop) ou des AI(Illustrator). Une sorte de FTP. Mais juste pour les upload. Tout ca protégé par .htaccess ou par ssl

    merci de vos reponse

  2. #2
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    hé oui c'est possible, y'a plein de scripts proposé sur le net...

    Mais perso j'avoue que même avec ces scripts je n'ai jamais reussi, mais c'est possible j'en suis sur

  3. #3
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    J'ai meme trouvé ca... http://matt.phptest.free.fr/php_upload_to_my_ftp/

    Maintenant je n'ai pas testé

  4. #4
    Membre éclairé Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Par défaut
    Merci je vais jeter un oeil la dessu, a premiere vue sa d'laire compliquer a configurer mais je croit que je vais m'en sortir.
    Toi tu bloque ou normalement?
    on peut p-e s'aider

    J'ai besion d'un truc comme ca, alors je n'arreterais pas de chercher!!!


  5. #5
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    A vrai dire moi j'ai abandonnée l'idée...

  6. #6
    Membre éclairé Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Par défaut
    I got it!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php
    $ftp['maxf'] = 3; // Nombre de champs de téléchargement
    $ftp['maxs'] = 10*1024*1024*10; // Taille maximale des fichiers (ex: 100Mo)
    $ftp['user'] = 'USER'; // Nom du compte ftp & Login
    $ftp['pass'] = 'PASS'; // Mot de passe d'accès au compte
    $ftp['host'] = 'FTP'; // Adresse du serveur ftp
    $ftp['dest'] = 'Ftp'; // Dossier de destination sur le serveur
    $ftp['mode'] = FTP_BINARY; // Mode de transmission : FTP_BINARY ou FTP_ASCII
     
    set_time_limit(0);
     
    //===============================================================================
    if(isset($_POST['valider'])){
     
    // Test du nombre de fichiers postés //
    $nbr=0;
    for($x=0;$x<$ftp['maxf'];$x++)
    if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
    if($nbr<=0) die("Aucun fichier spécifié !<br/>");
     
    // Connexion au server ftp
    $handle=@ftp_connect($ftp['host'],21,90);
    if($handle) {
    $res=@ftp_login($handle,$ftp['user'],$ftp['pass']);
    if($res) {
    @ftp_pasv($handle,true);
     
    // Création du dossier de destination //
    if(!empty($ftp['dest'])) {
    if(substr($ftp['dest'],strlen($ftp['dest'])-1,1)=='/') $ftp['dest'].='/';
    $dir=explode('/',$ftp['dest']);
    $ftp['dest']='';
    for($x=0;$x<count($dir);$x++) {
    $ftp['dest'].=$dir[$x].'/';
    $erg=@ftp_chdir($handle,$dir[$x]);
    if(!$erg){
    @ftp_mkdir($handle,$dir[$x]);
    $erg=@ftp_chdir($handle,$dir[$x]);
    if(!$erg) die("Dossier \"".$ftp['dest']."\" introuvable !<br/>");
    }
    }
    }
    } else die("Login invalide !<br/>");
    } else die("Connexion vers host échouée ! <br/>");
     
    // Téléchargement des fichiers //
    for($x=1;$x<=$ftp['maxf'];$x++) {
    $errorhttp=@$_FILES['userfile']['error'][($x-1)];
    $filenamehttp=@$_FILES['userfile']['name'][($x-1)];
    $typehttp=@$_FILES['userfile']['type'][($x-1)];
    $sizehttp=@$_FILES['userfile']['size'][($x-1)];
    $tmpfilehttp=@$_FILES['userfile']['tmp_name'][($x-1)];
    if (($errorhttp>0)&&(!empty($filenamehttp))) {
    switch ($errorhttp){
    case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
    case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
    case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
    case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
    }
    } else {
    if((!empty($filenamehttp))&&($sizehttp>0)) {
    if($sizehttp<=$ftp['maxs']){
    if(@is_uploaded_file($tmpfilehttp)) {
    if(function_exists('ftp_nb_put')){
    $res=@ftp_nb_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
    while($res==FTP_MOREDATA) $res=@ftp_nb_continue($handle);
    } else $res=@ftp_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
     
    if($res) {
    if(function_exists('ftp_chmod'))
    @ftp_chmod($handle,0777,$filenamehttp);
    if(ftp_size($handle,$filenamehttp)==$sizehttp) {
    echo "Fichier n°$x uploadé : ".basename($filenamehttp).
    " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
    } else echo "Erreur : fichier n°$x introuvable sur le serveur !<br/>";
    } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
     
    } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
    } else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
    } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
    }
    }
    @ftp_close($handle);
    die("Opération terminée.<br/>");
    }
     
    //===============================================================================
    echo '<form method="post" enctype="multipart/form-data"'.
    ' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
    '<input type="hidden" name="MAX_FILE_SIZE" value="'.$ftp['maxs'].'"/>';
    for($x=1;$x<=max($ftp['maxf'],1);$x++)
    echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20" multiple/><br/>';
    echo '<br/><input type="submit" name="valider" value="Envoyer..."/></form>';
     
     
    //===============================================================================
    ?>
    je suis en train de faire des tests pour voir jusqu'a combien de Mo possible a transferer. Le seul petit bugs que jai vue c'est quand tu le configure, dans quel repertoire placer le fichier uploader. Jai bidouiller 5 min pour trouver c'est pas si pire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FTP] Supprimer un fichier FTP par PHP
    Par Khleo dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2008, 22h01
  2. [FTP] Rechercher des fichiers dans un site FTP par PHP
    Par jack_1981 dans le forum Langage
    Réponses: 31
    Dernier message: 03/08/2006, 13h37
  3. [FTP] Connexion FTP par PHP
    Par kanaziwok dans le forum Langage
    Réponses: 4
    Dernier message: 29/07/2006, 15h41
  4. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 17h33
  5. [type MIME] css généré par php -> probleme
    Par prgasp77 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/09/2004, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo