Salut,
J'ai regardé pour un moyen de supporter le téléchargement des fichiers manquant avec rayphp via un proxy. 2 solutions ressortent :
-- Utiliser cURL pour gérer les transferts de fichier a la place de file(). J'ai un bout de code qui marche sur mon pc.
Avantage : simple a rajouter, ya juste a mettre --with-curl dans le configure de php4 et rajouter une ou 2 fonctions dans le code php.
Inconvénient : une dépendance de plus. A priori c'est possible de porter sur windows.
-- utiliser les contextes PHP5 pour modifier la prise en charge du transfert de fichiers. Des exemples sont disponibles sur le site php.net
Avantage : tres simple, pas de lib supplémentaire
Inconvénient : passer a PHP5
![Wink ;)](./images/smilies/icon_wink.gif)
et les problemes liés, je suppose que le wrapper PHP dans raydium va couiner...
-- tout refaire en C pour avoir une barre de progression
Mis a part la modif dans le configure de php et dans la chaine de compil (-lcurl) je remplace simplement les appels à @file() par get_file_from_web() :
Code:
$GLOBALS['raydium_proxy'] = "http://cache:3128";
function get_file_from_web($url)
{
$ch = curl_init();
if (defined($GLOBALS['raydium_proxy']))
curl_setopt ($ch, CURLOPT_PROXY, $GLOBALS['raydium_proxy']);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 5);
$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
Sinon, une idée serait d'afficher une image représentant le réseau lors des appels a getfile.php, vu qu'il peut y avoir une petite attente. A défaut de barre de progression ca peut déja etre une indication que "ca charge".
[/list][/list]