Soucis pour écrire un fichier

WRInaute passionné
Bonjour,

J'essaye de récupérer des images distantes (sur un autre serveur) pour les placer sur le mien. Mon soucis est que parfois je n'obtiens pas la totalité de l'image (1/3, 1/2 voir 3/4) même si la limite de $lecture (90480) est au maximum .
Code:
/*Mon formulaire*/
<?php
if(isset($_POST["Valider"]))
{
$url_image = trim($_POST["url"]);
//ouverture du fichier en lecture seul
$fichier_a_ouvrir = fopen($url_image, "r" );
//teste l'existence du fichier
if($fichier_a_ouvrir) 
{
//lecture du fichier avec limite
$lecture = fread($fichier_a_ouvrir, 90480);
$fichier_a_ouvrir_2 = fopen('../repertoir/'.$url_image.'.jpg', "wb" );
//écriture du fichier
$ecriture = fwrite($fichier_a_ouvrir_2, $lecture);
}
//on ferme isset
}
else
{
echo 'Le fichier <b>'.$url_image.'</b> est introuvable!';
}
?>

Qu'est ce qui cloche ?

Merci
 
WRInaute impliqué
Voici le code que j'utilise pour récupérer des images distantes, en espérant que ça puisse t'aider :)

Code:
$content_dir = 'images/';
$contentimage = file_get_contents('http://www.example.com/image.jpg');
if ( !empty($contentimage) ) {
	$createfile = fopen($content_dir.$name_file, 'w');
	if ( !fputs($createfile, $contentimage) ) {
		$erreur = 'Impossible de créer l\'image '.$content_dir.$name_file;
		}
	fclose($createfile);
	}
else {
	$erreur = 'Impossible de récupérer l\'image distante.';
	}
 
WRInaute impliqué
Je viens de voir que dans le code que je t'ai donné, la variable $name_file n'était pas définie, mais tu aura compris qu'elle doit contenir le nom avec lequel tu veux que l'image soit enregistrée sur ton serveur.

Code:
$name_file = 'monimage.jpg';
 
WRInaute passionné
Salut,

Je n'ai pas encore testé ton code mais à vue d'oeil, ton code ressemble au mien. Il y a juste la façon d'ouvrir le fichier distant qui change. Je vais voir ce que ça donne avec file_get_contents .
Merci
 
WRInaute passionné
Re ^^,

Je viens de tester ton code et l'adapter pour mes besoins et ça fonctionne nickel :) .

Merci NxtGen
 
Discussions similaires
Haut