Transfert de fichier (fsockopen)

Signaler
Messages postés
13
Date d'inscription
samedi 1 septembre 2001
Statut
Membre
Dernière intervention
6 juin 2005
-
Messages postés
13
Date d'inscription
samedi 1 septembre 2001
Statut
Membre
Dernière intervention
6 juin 2005
-
Bonjour à tous,

J'ai fait un code pour transferer un fichier depuis une url et le copie sur le compte où se trouve le php. Il y a une option lorsque le transfert est trop long et que le serveur coupe la connection, pour reprendre le transfert la où il s'est arreté, mais le probleme c'est que les fichiers copiés sont erronés voici mon code:

$addr = fsockopen($ur["host"], 80, $errno, $errstr, 30);


// La connection tous va bien
$request .= 'GET '.$ur['path']." HTTP/1.0\r\n";
$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)\r\n";

// Pointeur si il y reprise du transfert
if(isset($pointeur)):
$request .= "Range: bytes=".($pointeur-1)." - \r\n";
endif;

$request .= "Host: ".$ur['host']."\r\n\r\n";


if(isset($pointeur)):
if($fp=fopen($filename, 'a')):
ftruncate($fp,($pointeur-1));
endif;
endif;



//i: Nombre de boucle lors de la lecture
$i=($pointeur/512);





$buffer='';

//Envoie la requete HTTP
fwrite($addr, $request);



$hea=0;
$buffer = '';



while (!feof($addr)) {

$buffer = fread($addr, 512);



// Verifie si le serveur envoye le header
if((ereg("\r\n\r\n",$buffer)) && ($hea==0)):


$buffer=explode("\r\n\r\n",$buffer);
$buffer=$buffer[1];



/* ------------------- */


//Ecriture
if($fp=fopen($filename, 'a')):
fwrite($fp, $buffer);
fclose($fp);
else:


exit;
endif;



$i++;

else:
$pas--;
endif;

//Indique que le header a déjà été lu
$hea=1;






else:


//Ecriture
if($fp=fopen($filename, 'a')):
fwrite($fp, $buffer);
fclose($fp);
else:


exit;
endif;



//Envoi des infos au navigateur
$i++;
if ($pas==0):
$pas=200;
else:
$pas--;
endif;

endif;


}



fclose($addr);

Voila , si vous arrivez a comprendre

comment faire pour que la suite du fichier correspondent à la suite du fichier en local

2 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



perso je n'ai pas compris ta question. Tu as deux PC distants et tu
souhaites copier un fichier qui provient d'où vers ou ? si c'est pas ça
merci de m'expliquer.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
13
Date d'inscription
samedi 1 septembre 2001
Statut
Membre
Dernière intervention
6 juin 2005

je veux copier un fichier depuis une url par ex http://site.com/fichier.rar sur le serveur ou tourne mon code php. mais ça sa marche, ce qui marche pas c'est quand je fait une reprise du transfert.