Enregistrement de fichiers à partir d'url

Petit nouveau ! | 2 Messages

02 mars 2011, 19:20

Bonjour à tous,

comme vous pouvez le deviner j'ai un problème ... :roll:

Pour l'ensemble du problème :
- je dois récupérer une liste de fichier préalablement sélectionnés dans un formulaire avec cases à cocher. (Cette partie là est faite et me renvoie une url en fonction de la sélection.)

- à partir de la liste sélectionnée je dois ensuite télécharger chaque fichier pointés par les url et les mettre dans un dossier sur un serveur.

(c'est ici que çà commence à coincer j'ai tenter les fonctions file(), copy() et fopen() mais j'ai eu plusieurs fois ce message : "failed to open stream: HTTP wrapper does not support writeable connections" après quelques recherches j'ai appris que l'on ne pouvait pas écrire par http et c'est là que je demande humblement votre aide.)

voici le code qui reçoit les url :
$compteurtest = 0;
//$valeur reçoit une url qui est liée à un pdf
foreach($_POST["selected"] as $clef => $valeur)
{
    $compteurtest++;
    //$tempForZip = fopen("$valeur","w");
    echo "<br> $valeur <br>";
    //copy("$valeur","http://xxxxxxxxxxx/tempforzip$compteurtest.pdf");
}
//fputs($tempForZip,$_SERVER['HTTP_USER_AGENT']."\n");
//fflush($tempForZip);
//fclose($tempForZip);

ViPHP
xTG
ViPHP | 7331 Messages

02 mars 2011, 20:43

Il faut que tu récupères le contenu du fichier (file_get_contents() par exemple) et que tu copies son contenu dans un nouveau fichier sur ton serveur (file_put_contents() ;) ).

Petit nouveau ! | 2 Messages

03 mars 2011, 10:35

Merci je test çà de suite.

Edit: après quelques tests et embrouilles voilà le résultat :
$compteurtest = 0;
//$valeur reçoit une url qui est liée à un pdf
foreach($_POST["selected"] as $clef => $valeur)
{
    $compteurtest++;
    //echo "<br> $valeur <br>";
    $valeur2 = file_get_contents("$valeur");
    file_put_contents("C:\************************\\tempforzip$compteurtest.pdf","$valeur2");
}
l'erreur se trouvait sur la ligne du file_put_contents au lieu de mettre c:\....... j'avais mis http://........ qui ne supporte pas l'écriture ... j'aurais pu chercher des heures.

Quoi qu'il en soit merci pour cette aide précieuse.
Modifié en dernier par demiliche le 03 mars 2011, 11:21, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

03 mars 2011, 11:16

Il faut que tu récupères le contenu du fichier (file_get_contents() par exemple) et que tu copies son contenu dans un nouveau fichier sur ton serveur (file_put_contents() ;) ).
un copy suffis

ViPHP
xTG
ViPHP | 7331 Messages

03 mars 2011, 13:55

C'est son http qui m'a envoyé sur la mauvaise direction.
Si c'est un fichier de TON serveur en effet la fonction copy() suffit amplement ! Mais cette fonction n'accepte pas des urls, elle prend un chemin en rapport avec la racine du script.

Edit: au temps pour moi, c'est bon à savoir. :D
Modifié en dernier par xTG le 03 mars 2011, 16:59, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

03 mars 2011, 14:33

Mais cette fonction n'accepte pas des urls, elle prend un chemin en rapport avec la racine du script.
si si elle prend les URL, tu peux même faire du FTP avec