8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,
j'ai un gros hic qui est je pense assez spécifique et on m'a dit beaucoup de bien de ce forum alors je me lance avec mon premier post Smiley smile

J'ai un code qui me permet de récupérer via l'url d'une image d'un site distant le fichier et de le mettre sur mon serveur. Ca se déroule bien jusque là Smiley smile le hic est que l'upload du fichier n'est pas complet, j'ai à chaque fois un fichier donc la taille (pixel) colle, mais il ne pèse rien et l'image est incomplète. voir ci dessous
http://mhspartage.free.fr/image/spectacle_6180.jpg
j'ai dans mon code : $read = fread($open, 12582912); où j'ai remarqué que le chiffre indique la taille max autorisée. mais ça ne fonctionne pas mieux :colere2: pourtant j'ai tenté de mettre un MEGA chiffre et ça plante en me disant que le tampon est trop gros. si je ne me trompe pas, l'unité est en octets et je devrais sans soucis pouvoir uploader un fichier de 300ko

voici mon code

<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>

j'ai mis le code de la page ici pour que vous puissiez tester en direct Smiley smile http://mhspartage.free.fr/up.php et voir par vous même


je viens de tester avec plein d'images de tailles différentes et j'ai l'impression que la processus bloque toujours au même endroit (même hauteur de pixel) matez le répertoire image, vous verrez par vous même les essais http://mhspartage.free.fr/image/ c'est vraiment Zarb

Merci pour vos aides Smiley langue
Modifié par magicman (29 Jun 2011 - 09:06)
Je ne vois aucun formulaire d'upload de fichier sur la page que tu as publié (ni dans ton code).
Modifié par jb_gfx (28 Jun 2011 - 19:42)
je ne fais pas d'upload via un $_FILE mais via un $_POST qui récupère une adresse url de type texte. ensuite via un $open = fopen($image_url, "rb" ); je récupère l'url.
la suite du code récupère l'image et la stocke chez sur mon serveur.

$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';

ce lien http://mhspartage.free.fr/up.php te permet de vérifier que l'upload fonctionne (même s'il est incomplet) car une fois une image uploadé, l'image qui s'affiche sous le bouton REC est une image hébergée chez moi.

Ma question porte sur le fait que l'upload est incomplet Smiley bawling

Merci pour vos lanternes car je suis un peu dans le noir Smiley biggol
Déjà, ton problème vient surement de la fonction fread($open, 12582912).

Pour y remédier, ceci devrais t'aider:

$read = '';
while (!feof($open)) {
  $read .= fread($open, 8291);
}

Modifié par xBEAD (29 Jun 2011 - 01:42)
Bonjour Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien "Aide" qui apparaît tout en haut du forum est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Laurie-Anne a écrit :
Bonjour Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).


Bonjour Laurie-Anne

j'ai rencontré un soucis avec le passage de mon code avec les balises. il est évident que c'est bien plus simple de lire un code avec les "codes couleurs" réservés au langage, mais lorsque je l'ai fait, je ne sais pas pourquoi, mon code n'était pas complet et il en manquait une grand partie Smiley confus le pire c'est que la partie "non visible" ne s'affichait nulle part, même pas en mode normal en dessous.
j'ai tenté 2 bidouilles et toujours rien à faire. alors j'ai fini par le laisser en mode normal !!

je file retenté un edit de mon code et tester ton petit bout de code xBEAD Smiley cligne Smiley cligne
Laurie-Anne peux tu m'expliquer ceci car c'est le pourquoi du comment qui fait que je n'ai pas mis mon code [.code.]
voici mon code brut

<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>

et voici la même version avec une balise code PHP


<form method="post" action="up.php" enctype="multipart/form-data">
	<input type="text" name="image_url" /><br />
	<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
	extract($_POST);
	$open = fopen($image_url, "rb" ); 
	// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas 
	$read = fread($open, 12582912);
	$slash = strrchr($image_url, "/" ); 
	$long = strlen($slash); 
	$nom = substr($slash, 1, $long); // récup du nom du fichier 
	$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier 
	$write = fwrite($open2, $read); // écriture du fichier 
	echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>

Smiley confus Smiley confus Smiley confus
mon code PHP ne s'affiche pas et c'est pour ça que je n'avais pas fait la mise en forme. mais je suis sûr que tu as une explication à ceci et que je vais vite modifier mon post principal Smiley lol
j'ai eu un doublon de post. la suppression est réservée au modérateur... merci de supprimer ce message
Modifié par magicman (29 Jun 2011 - 09:05)
xBEAD a écrit :
Déjà, ton problème vient surement de la fonction fread($open, 12582912).

Pour y remédier, ceci devrais t'aider:

$read = '';
while (!feof($open)) {
  $read .= fread($open, 8291);
}


Wonderfull !!!! ça fonctionne Smiley biggrin Smiley biggrin Smiley biggrin
Merci beaucoup pour ton aide, je vais enfin pouvoir avancer Smiley lol

thanks Smiley fou
essai des balises codes avec le code de magicman

essai html
<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>


essai css

<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>


essai php
<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>


essai mysql
<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>


essai javascript
<form method="post" action="up.php" enctype="multipart/form-data">
<input type="text" name="image_url" /><br />
<p><input type="submit" name="submit" value="REC"/></p>
<?php
if (!empty($_POST['image_url']))
{
extract($_POST);
$open = fopen($image_url, "rb" );
// $read = fread($open, 1024*8); // ici y a un truc que je comprends pas
$read = fread($open, 12582912);
$slash = strrchr($image_url, "/" );
$long = strlen($slash);
$nom = substr($slash, 1, $long); // récup du nom du fichier
$open2 = fopen('image/'.$nom, "wbr" ); // création du fichier
$write = fwrite($open2, $read); // écriture du fichier
echo '<img src="image/'.$nom.'" />';
}
?>

<a href="up.php">again</a>


étrange ce qui t'est arrivé , je n'ai fait qu'un copier/coller de ton premier code dans les balises codes , navigateur : firefox5 sous Debian squeeze
magicman a écrit :


Wonderfull !!!! ça fonctionne Smiley biggrin Smiley biggrin Smiley biggrin
Merci beaucoup pour ton aide, je vais enfin pouvoir avancer Smiley lol

thanks Smiley fou



De rien magicman Smiley cligne