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

Langage PHP Discussion :

Upload de fichier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut Upload de fichier
    Bonjour,

    Je suis en train de faire des test d'upload d'images sur 2 serveurs A et B. Le serveur A contient le script en copie ci dessous, le script doit uploader vers le repertoire
    www/TEST/bdtestupload/ sur le serveur B.
    Ce script est en exemple sur le site develloppez.com
    <?php
    // ca C ok ca marche $dossier = 'bdtestupload2/';//
    $dossier = '/var/www/172.20.16.210/TEST/bdtestupload2/';
    $fichier = basename($_FILES['avatar']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['avatar']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['avatar']['name'], '.');
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
    $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
    //On formate le nom du fichier ici...
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    echo $fichier;
    if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    {
    echo 'Upload effectué avec succès !';
    }
    else //Sinon (la fonction renvoie FALSE).
    {
    echo 'Echec de l\'upload !';
    }
    }
    else
    {
    echo $erreur;
    }
    ?>
    les répertoires impactés sont chmodés temporairement en 777.

    j'ai le message d'erreur suivant:
    Warning: move_uploaded_file(/var/www/172.20.16.210/TEST/bdtestupload2/AAAimg.png) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/bdtestupload02.php on line 27

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php65403k' to '/var/www/172.20.16.210/TEST/bdtestupload2/AAAimg.png' in /var/www/bdtestupload02.php on line 27
    Echec de l'upload !
    merci de vos aides et commentaires.

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    bonjour

    euuu

    si je comprend bien, ton probleme, le serveur A a des images qu'il doit pousser vers le serveur B?

    Dans ce cas tu as tout faux.

    Est ce qu'un utilisateur doit envoyer un fichier à B en utilisant A comme proxy?

    Dans ce cas c'est moins faux.

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    en dehors du probleme de transfert de fichier...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    alors que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = filter_var($fichier, FILTER_SANITIZE_STRING, .... );
    par contre ça va pas te dispenser de faire un test pour savoir si le fichier n'existe pas déjà.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par gene69 Voir le message
    en dehors du probleme de transfert de fichier...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    alors que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = filter_var($fichier, FILTER_SANITIZE_STRING, .... );
    par contre ça va pas te dispenser de faire un test pour savoir si le fichier n'existe pas déjà.
    FILTER_SANITIZE_STRING ca supprime pas les accents, ni les slash d'ailleurs

  5. #5
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    visiteur => remplis formulaire
    serveur A => recois formulaire visiteur
    serveur A => ouvre une socket vers serveur B, fait un post avec les images reçues (comme le post)
    serveur B => reçois formulaire
    serveur B => stocke.
    on est d'accord.

    par hasard, est ce que tu ne voudrais pas que ton visiteur puisse uploader une photo sur ton site mais qu'elle soit hébergée par Flikr?
    non.

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    serveur A => génére formulaire au pour le visiteur;
    visiteur => remplis formulaire
    serveur A => recois formulaire visiteur
    avec le script ci dessus.
    fait un var_dump($_FILES) pour savoir si tu recois bien le fichier. Il si non (en 2 mots) il se peut que le enctype du formulaire soit mal positionné.
    serveur A => ouvre une socket vers serveur B, fait un post avec les images reçues (en post)
    Une fois que tu as ton fichier, il faut que ton server A reface le post vers un script du serveur B. J'ai jamais utilisé curl mais tout le monde dit que c'est ça qui faut utilisé.
    serveur B => reçois formulaire
    avec un truc similaire au script déjà évoqué ci dessous
    serveur B => stocke.
    il fait bien se qu'il veut...

    Bon, si ton serveur A est juste un proxy, utilise un proxy tout fait.

  7. #7
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    le script est executé sur le serveur A, et les images doivent être uploadées sur le serveur B dans le répertoire /TEST/bdtestupload2/

    est ce plus clair ?

  8. #8
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    non c'est pas très clair pour moi.

    Le script que je viens de voir est destiné à recevoir des fichiers soumis par un formulaire dans un <input type="file" />. Fait un var_dump($_FILES) pour voir ce quels fichiers tu recois par le formulaire.


    visiteur =1=> serveur A =2=> serveur B.

    la liaison =1= c'est du http.
    la liaison =2= c'est du http ou un autre protocole réseau?

  9. #9
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    oui, les liaisons sont en http.

    le script est sur le serveur A, et j'essaie d'uploader vers le serveur B via http.

  10. #10
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    les images à la bases sont chez le visiteur ou sur le serveur A?

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. Upload de fichier par XMLHTTP
    Par Immobilis dans le forum ASP
    Réponses: 6
    Dernier message: 21/01/2005, 17h02
  3. upload de fichier
    Par 120 dans le forum ASP
    Réponses: 16
    Dernier message: 21/06/2004, 12h07
  4. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55
  5. Upload de fichiers
    Par GDVL dans le forum ASP
    Réponses: 4
    Dernier message: 03/06/2004, 12h44

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