8791 sujets

Développement web côté serveur, CMS

Bonjour,

j'aimerai savoir si il est possible, en php ou autre, de télécharger un fichier depuis un site vers un autre site ?
Je m'explique : depuis l'endroit où je me connecte, les téléchargements depuis le site rapidshare.com sont bridés. J'aurai donc souhaité pouvoir télécharger le fichier souhaité de rapidshare sur le serveur où est hébergé mon site web, pour ensuite télécharger ce fichier vers mon poste de travail (téléchargement non bridé dans ce cas là).

Merci d'avance
Administrateur
Bonjour,

avec libcurl (PHP ou autre) c'est possible mais pour Rapidshare c'est une autre histoire Smiley ravi (sans un navigateur pour taper le captcha, JS tout ça)
Ou encore avec un accès SSH sur un serveur linux, il suffit de faire un petit
wget URL-du-fichier

Mais pour Rapidshare... Smiley sweatdrop
Felipe a écrit :
Bonjour,

avec libcurl (PHP ou autre) c'est possible mais pour Rapidshare c'est une autre histoire Smiley ravi (sans un navigateur pour taper le captcha, JS tout ça)


j'avoue que je suis débutant donc je sais pas trop comment faire.
En cherchant sur le web, j'ai trouvé ce code :

<?php

function ftp_curl_get($url, $sortie)
{
    if ($fp = fopen($sortie, 'w')) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_FILE, $fp);
        $ret = curl_exec($ch);
        curl_close($ch);
        fclose($fp);
        return $ret;
    }
    return FALSE;
}

if (!ftp_curl_get('http://rs43gc.rapidshare.com/files/40584057/dl/Xtremsplit.rar', 'Xtremsplit.rar')) {
    die("Le fichier indiqué n'a pu être récupéré");
}


Le problème, c'est que ce script lance le téléchargement du fichier sur mon disque dur local et non vers mon hébergement, donc le contraire de ce que je veux faire !! Smiley ohwell
(Pour info, l'adresse $url est celle qui lance directement le téléchargement.)

Pourrais-tu m'aiguiller sur la procédure pour faire ce téléchargement SUR mon hébergment

Merci d'avance
Modifié par flashy38 (02 Jul 2007 - 15:25)
En pourquoi pas quelque chose comme :

$url = "http://www.site.com/dossier/fichier.zip";
$save = "fichier.zip";
$contenu = file_get_contents($url);
$fd = fopen($save, 'w');
fwrite($fd, $contenu);
fclose($fd);
QuentinC a écrit :
En pourquoi pas quelque chose comme :

$url = "http://www.site.com/dossier/fichier.zip";
$save = "fichier.zip";
$contenu = file_get_contents($url);
$fd = fopen($save, 'w');
fwrite($fd, $contenu);
fclose($fd);


J'ai essayé mais ca ne marche pas.
Voici l'erreur que j'obtiens :
a écrit :
Unable to Warning: file_get_contents(http://rs43gc.rapidshare.com/files/40584057/dl/Xtremsplit.rar): failed to open stream: Connection timed out
Bonsoir, ce message d'erreur t'indique qu'il n'arrive pas a avoir le fichier dans le temps donnée.

Cette erreur peut venir de :

La taille du fichier que le serveur ne peut pas enregistrer (pas assez de place sur l'hébergement, ou soit, ça se passe comme pour les fichiers, il ne faut pas dépasser quelques méga en envoie (6-10 Mo).

Après, Rapid Share protège les fichiers de l'importation directe sur un autre serveur, et donc là tu ne peux pas faire grand chose ...
Le timeout de connexion doit pouvoir se régler. Mais il ne faut pas dépasser une certaine taille effectivement, ça dépend de la mémoire allouée à php, de la taille du fichier, de la vitesse du téléchargement, ...
Sinon, je suis pas sûr, mais est-ce que HTTP ne propose pas un moyen de reprendre un téléchargement interrompu ?