[Upload] A partir d'une URL
Posté : 16 mai 2006, 16:59
Voilà j'ai repris mon script precedent et j'essaye d'upload une image a partir d'un site internet pour la garder en memoire de la facon suivante :
Donc en fait il je sais pas s'il faut garder le 'temp_name' ou le changer j'ai essayer plusieurs test avec ou sans et je ne trouve pas du tout ou est l'erreur ...
<?php
require ("connect.php");
$photo = $_POST['photo2'];
if(isset($photo))
{
//parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = 'c:/www/Avatars/';
$size = getimagesize($_POST['photo2']['tmp_name']);
$height = $size[1];
$width = $size[0];
$taille = 100;
// On verrifie les extensions
if( !in_array( substr(strrchr($_POST['photo2']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = true;
header("location: chavatar.php?erreur1&PHPSESSID=".$_POST['session']);
exit();
}
// On verrifie la taille du fichier
elseif( file_exists($_POST['photo2']['tmp_name']) and $_POST['photo2']['size'] > $taille_max)
{
$erreur = true;
header("location: chavatar.php?erreur2&PHPSESSID=".$_POST['session']);
echo $_POST['photo2']['tmp_name'];
exit();
}
elseif( file_exists($_POST['photo2']['tmp_name']) and $height > $taille && $width > $taille)
{
$erreur = true;
header("location: chavatar.php?erreur3&PHPSESSID=".$_POST['session']);
exit();
}
// Si ficher = bonne taille & bonne extension
if(!isset($erreur))
{
$dest_fichier = basename($_POST['photo']['name']);
//formatage nom fichier
//enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// On upload le fichier
move_uploaded_file($_POST['photo2']['tmp_name'], $dest_dossier . $_POST['photo']['name']);
// On remet a jour la base de donnée
$valide = "UPDATE `art` SET avatar = '".$_POST['photo2']['name']."' WHERE nom = '".$_POST['pseudo']."' ";
$test = mysql_query($valide) or die("erreur ! ".mysql_error());
//Redirection sur page precedente
header("location: chavatar.php?PHPSESSID=".$_POST['session']);
}
}else{
header("location: chavatar.php?erreur4&PHPSESSID=".$_POST['session']);
}
?>
Le soucis c'est qu'il identifie bien le format de l'image et ne retourne pas d'erreur mais bloque sur getsizeimage en me retournant l'erreur : Code : Tout sélectionner
Warning: getimagesize(h) [function.getimagesize]: failed to open stream: No such file or directory in C:\www\vavatar2.php on line 14