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 :

Transfer files via http


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Par défaut Transfer files via http
    Bonjour,

    J'aimerais envoyer plusieurs fichiers via un formulaire et une api en php.
    J'ai un formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" enctype="multipart/form-data">
    	<p>Image : <input type="file" name="files[]"></p>
    	<p><input type="submit" value="ENREGISTRER"></p>
    </form>

    et le code php pour générer le flux des fichiers à uploader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public function call_api($pMethod=null, $pDatas=null, $pFiles=null){
    ...
      if(count($pFiles)>0){
         for($i = 0; $i <=count($pFiles); $i++) {
            $fileContents = file_get_contents($pFiles['tmp_name'][$i]);
            $data .= "Content-Disposition: form-data; name=" . $pFiles['name'][$i] . "; filename=" . $pFiles['name'][$i] . "\n";
            $data .= "Content-Type: application/x-bittorrent\n";
            $data .= "Content-Transfer-Encoding: binary\n\n";
            $data .= $fileContents . "\n";
            $data .= "--" . $boundary . "\n";
        }
     }
    ...
    }
    et le souci c'est que si je selectionne plusieurs fichiers seul le premier est pris en compte.
    Je dois avoir un souci avec le foreach de $pFiles mais je ne vois pas le souci.

    Merci de votre aide

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Difficile de voir ce qui ne va pas vu qu'il manque les trois quarts du code de ta méthode call_api ainsi que la classe à laquelle elle appartient, la création de l'instance et l'appel à cette méthode.

    Mise à part ça, je peux te dire d'emblée que la condition de la boucle for n'est pas bonne pour deux raisons:
    • Si la super globale $_FILES est bien passée comme argument $pFiles comme je le suppose, count($pFiles) ne te renverra pas le nombre de fichiers mais le nombre d'éléments du tableau associatif qu'est $_FILES (soit cinq pour les clefs name, tmp_name, type, error et size). Pour avoir le nombre de fichiers, tu peux compter le nombre d'éléments contenu dans le tableau associé à l'une de ces clefs, soit count($pFiles['name']).
    • La condition d'arrêt de la boucle est $i < $nombreditems et pas $i <= $nombreditems car $i est un indice qui commence à 0 et qui s'arrête au nombre d'items moins un.

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

Discussions similaires

  1. [API HTML5] Test échoue via file mais fonctionne via http ?
    Par BeRoots dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/10/2017, 21h06
  2. Comment afficher une image à la volée via http ?
    Par reg11 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 30/06/2005, 09h44
  3. IOR via http?
    Par Spoutnik dans le forum CORBA
    Réponses: 4
    Dernier message: 31/01/2005, 17h44
  4. [net] recuperer les proprietes d'un File via une URL
    Par mma dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/05/2004, 12h45
  5. [web] rapatrier un document via HTTP
    Par ddhia dans le forum Web
    Réponses: 2
    Dernier message: 08/04/2003, 11h01

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