2010-07-04 7 views
1

J'essaye de construire un script où il télécharge un fichier using le client de HTTP de Zend: http://framework.zend.com/manual/en/zend.http.html mais je ne peux trouver nulle part où il indique comment faire ceci donc je me demande si c'est possible ... Le dossier dépend d'être connecté, alors je dois l'avoir fait par le client http zend il peut utiliser des cookies qui sont créés lorsque le script se connecte ..Possibilité de télécharger un fichier via le client HTTP Zend?

des conseils est très apprécié

Répondre

7

Remplissez la demande du fichier comme vous le feriez d'une page Web. Le corps de la réponse doit contenir les données binaires pour le fichier (ou éventuellement les données textuelles si vous étiez en téléchargeant un fichier CSS, XML, etc ...).

$body = $response->getBody(); 
file_put_contents("myfile.zip",$body); 
3

Personnellement, je utiliserait cURL à la place.

cURL dans le manuel PHP: http://php.net/manual/en/book.curl.php

Un exemple simple d'utilisation cURL pour télécharger un fichier: http://www.webdigity.com/index.php?action=tutorial;code=45

+0

Je suis d'accord. Vous pouvez utiliser cURL dans votre contrôleur qui a déjà accès à cette information. –

+0

C'est beaucoup plus facile que d'utiliser le client HTTP et devrait généralement être disponible dans la plupart des configurations PHP. –

+0

ouais j'utilise déjà curl mais je veux utiliser zend car il est branché avec une requête PHP qui est plus puissante que curl, du moins pour ce que je l'utilise pour – Rick

6

Exemple # 11 Réception de fichier à partir du serveur HTTP avec le streaming

$client->setStreaming(); // will use temp file 

    $response = $client->request('GET'); 

    // copy file 

    copy($response->getStreamName(), "my/downloads/file"); 

    // use stream 

    $fp = fopen("my/downloads/file2", "w"); 

    stream_copy_to_stream($response->getStream(), $fp); 

    // Also can write to known file 

    $client->setStreaming("my/downloads/myfile)->request('GET'); 

http://framework.zend.com/manual/en/zend.http.client.advanced.html

dernier exemple

Questions connexes