par
agité » 28 juin 2006, 18:00
Bonjour j'ai encore un soucis pour mon upload d'avatar :/
ca commence a vraiment ma gaver ces trucs de tmp_name et name pour un fichier qu'on upload en tout cas quand je met par exemple : $_FILES['photo']['name'] il m'indique une erreur et quand je met $_FILES['photo']['tmp_name'] il ne fait rien :
<?php
require ("connect.php");
if(isset($_FILES['photo']))
{
//parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = 'Avatars/';
$size = getimagesize($_FILES['photo']['name']);
$height = $size[1];
$width = $size[0];
$taille = 100;
// On verrifie les extensions
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = true;
header("location: chavatar.php?erreur1");
exit();
}
// On verrifie la taille du fichier
elseif( file_exists($_FILES['photo']['name']) and $_FILES['photo']['size'] > $taille_max)
{
$erreur = true;
header("location: chavatar.php?erreur2");
exit();
}
elseif( file_exists($_FILES['photo']['name']) and $height > $taille && $width > $taille)
{
$erreur = true;
header("location: chavatar.php?erreur3");
exit();
}
// Si ficher = bonne taille & bonne extension
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['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($_FILES['photo']['tmp_name'], $dest_dossier . $_FILES['photo']['name']);
// On remet a jour la base de donnée
$valide = "UPDATE `art` SET avatar = '".$_FILES['photo']['name']."' WHERE nom = '".$_POST['pseudo']."' ";
$test = mysql_query($valide) or die("erreur ! ".mysql_error());
//Redirection sur page precedente
header("location: chavatar.php");
}
}else{
header("location: chavatar.php?erreur4");
}
?>
je bloque completement avec ce script qui me retourne que :
Code : Tout sélectionner
Warning: getimagesize(mast_free2.gif): failed to open stream: No such file or directory in /home/agite/domains/electrogene.org/public_html/vavatar.php on line 13
ligne 13 correspondant a :
$size = getimagesize($_FILES['photo']['name']);
Bonjour j'ai encore un soucis pour mon upload d'avatar :/
ca commence a vraiment ma gaver ces trucs de tmp_name et name pour un fichier qu'on upload en tout cas quand je met par exemple : $_FILES['photo']['name'] il m'indique une erreur et quand je met $_FILES['photo']['tmp_name'] il ne fait rien :
[php]<?php
require ("connect.php");
if(isset($_FILES['photo']))
{
//parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = 'Avatars/';
$size = getimagesize($_FILES['photo']['name']);
$height = $size[1];
$width = $size[0];
$taille = 100;
// On verrifie les extensions
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = true;
header("location: chavatar.php?erreur1");
exit();
}
// On verrifie la taille du fichier
elseif( file_exists($_FILES['photo']['name']) and $_FILES['photo']['size'] > $taille_max)
{
$erreur = true;
header("location: chavatar.php?erreur2");
exit();
}
elseif( file_exists($_FILES['photo']['name']) and $height > $taille && $width > $taille)
{
$erreur = true;
header("location: chavatar.php?erreur3");
exit();
}
// Si ficher = bonne taille & bonne extension
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['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($_FILES['photo']['tmp_name'], $dest_dossier . $_FILES['photo']['name']);
// On remet a jour la base de donnée
$valide = "UPDATE `art` SET avatar = '".$_FILES['photo']['name']."' WHERE nom = '".$_POST['pseudo']."' ";
$test = mysql_query($valide) or die("erreur ! ".mysql_error());
//Redirection sur page precedente
header("location: chavatar.php");
}
}else{
header("location: chavatar.php?erreur4");
}
?>[/php]
je bloque completement avec ce script qui me retourne que :
[code]Warning: getimagesize(mast_free2.gif): failed to open stream: No such file or directory in /home/agite/domains/electrogene.org/public_html/vavatar.php on line 13[/code]
ligne 13 correspondant a :
[php]$size = getimagesize($_FILES['photo']['name']);[/php]