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

Bibliothèques et frameworks PHP Discussion :

Envoi fichier tar via CURL


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 206
    Points : 110
    Points
    110
    Par défaut Envoi fichier tar via CURL
    Bonjour a tous,
    je rencontre un soucis lors d'un envoi en CURL d'un site 1 vers un un site 2 , d'un fichier .tar.
    Plus précisément lors du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents(__DIR__.'/recups/'.$resp->name, $filebin);
    je reçois bien mon fichier mais sa création dans le répertoire de destination est endommagé

    code envoi :

    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
    $archive = new PharData($nameZip);
    $archive->buildFromDirectory($pathZip);
     
     
    $data=array(
      'name' => $nameZip,
      'file' => base64_encode(file_get_contents($path))
    );
     
    $ch = curl_init();
    $options = array(
      CURLOPT_URL => 'https://monUrl/monFichier.php?pkey=xxxxxxxx',
      CURLOPT_RETURNTRANSFER => true,
      CURLINFO_HEADER_OUT => true, //Request header
      CURLOPT_HEADER => true, //Return header
      CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
      CURLOPT_SSL_VERIFYPEER => false, //Don't veryify server certificate
      CURLOPT_POST => true,
      CURLOPT_POSTFIELDS => json_encode($data)
    );
     
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    $header_info = curl_getinfo($ch,CURLINFO_HEADER_OUT);
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($result, 0, $header_size);
    $body = substr($result, $header_size);
    curl_close($ch);

    code réception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $body = file_get_contents('php://input');
     
    $resp = json_decode($body);
     
    $filebin = base64_decode($resp->file);
     
     
    file_put_contents(__DIR__.'/recups/'.$resp->name, $filebin);
    Merci à vous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 431
    Points : 15 803
    Points
    15 803
    Par défaut
    quelles sont les différences entre le fichier de départ et celui à l'arrivée ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 206
    Points : 110
    Points
    110
    Par défaut
    bonjour et merci,

    déjà la taille est quasi null.

    je fais mes tests sur des petits fichiers mais j’envoie 1Mo zipé et je réceptionne 164ko

    Mais si vous avez un autre code a me proposer, je vous remercie d'avance

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 206
    Points : 110
    Points
    110
    Par défaut
    j'ai résolu mon pb,
    l'erreur était dans le la variable que je passai dans base64_encode(file_get_contents($path))

    elle ne contenait pas la totalité du path et le nom fichier .tar

    merci a vous

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

Discussions similaires

  1. Envoi d'info via CURL
    Par BabaMinaTor dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 08/04/2020, 11h02
  2. [XL-2007] Excel VBA - Envoi Fichier Excel via Lotus Notes 8.5
    Par Oulol dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/09/2015, 11h38
  3. Envoi fichier txt via une socket Java
    Par abbesmor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 30/10/2013, 17h12
  4. Envoi fichier Android via Bluetooth
    Par abeele123 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 04/10/2012, 18h03
  5. Envoi fichier Excel via Outlook 2003
    Par etorria dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/11/2008, 20h10

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