PHP - Upload file

Résolu/Fermé
J@rodd Messages postés 39 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 26 octobre 2015 - 19 nov. 2014 à 00:54
DoulyCreation Messages postés 5 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 25 novembre 2014 - 25 nov. 2014 à 13:50
Bonjour,

Je voudrais savoir si quelqu'un a une solution concernant ce petit probleme!


<?php
print_r($_FILES);
if(isset($_POST['upload']) AND isset($_FILES['avatar'])){
/////////////VARS//////////////////////////////////////////////////////
$max_size = 500000;
$max_width = 500;
$percent = 1.5;
$new_width = 132;
$login = "Administrator";
$id = "1257";
$ext_valid = array('jpg','jpeg','png','gif');
$file_name = $_FILES['avatar']['name'];
$file_ext = strtolower(substr(strrchr($file_name, '.') ,1) );
$file_size = $_FILES['avatar']['size'];
$tmp_file = $_FILES['avatar']['tmp_name'];
$new_name = "./files/{$login}{$id}.{$file_ext}";
list($width,$height) = getimagesize($tmp_file);
$new_height = $new_width * $percent;
////////////////////////////////////////////////////////////////////////

if($_FILES['avatar']['error'] > 0){$error = "U ar not allowed to do that dude !";}
if(in_array($file_ext,$ext_valid)){
//TEST EXTENSION FILE
if($width <= $max_width OR $file_size <= $max_size){
//TEST FILE SIZE
if($file_ext == "jpg" OR $file_ext == "jpeg"){$src = imagecreatefromjpeg($tmp_file);}
elseif($file_ext == "gif"){ $src = imagecreatefromgif($tmp_file); }
else{
$src= imagecreatefrompng($tmp_file);
}
$tmp = imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($tmp,$src,0,0,0,0,$new_width,$new_height,$new_width,$new_height);
imagepng($tmp,$new_name);
imagedestroy($src);
imagedestroy($tmp);
}else{
$error = "FILE SIZE > 500ko";
}
}else{
$error = "Must be an image !!!";
}
}

?>
<html>
<head>
<title>TETS - Uploading files</title>
</head>
<body>
<div id="menu">
<form method="post" action="" enctype="multipart/form-data">
<label for="avatar">Avatar : </label>
<input type="file" name="avatar" />
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<button name="upload">Tester</button>
</form>
<?php if(isset($error)){echo $error;} ?>
</div>
</body>
</html>

Le script fait a peu pres son taff mais ne satisfait pas le client ^^
L'image crée à la fin est noir, totalement NOIR.
Solution?Correction?

Cordialement,
A voir également:

2 réponses

jordane45 Messages postés 38470 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 avril 2025 4 742
22 nov. 2014 à 22:42
Bonjour,

Déjà.. as tu testé par toi même ce code ?
Fonctionne t'il correctement pour toi ?

As tu essayé avec la même image que ton client ?
Qu'est ce que ça donne chez toi ?

As tu testé ton code en local sur ton poste (est-ce que ça fait pareil que sur le serveur ) ?

Dans le titre tu parles d'un souci d'Upload.. hors je pense que c'est plus la génération de la miniature qui pose problème non ?
As tu regardé la doc : https://www.php.net/manual/fr/function.imagecopyresampled.php


0
DoulyCreation Messages postés 5 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 25 novembre 2014
Modifié par DoulyCreation le 25/11/2014 à 13:51
Bonjour,

Il me semble que pour garder la transparence d'une image dans le cas d'un PNG il faut mettre le code suivant :


$compteur_step1 =   imagecreatefrompng($compteur_orig);     // Image d'origine
imagealphablending($compteur_step1, true);

//On redimensionne le compteur
$LargeurImageDepart = imagesx($compteur_step1);
$HauteurImageDepart = imagesy($compteur_step1);
imagecopyresampled($compteur_step2, $compteur_step1, 0, 0, 0, 0, $width, $height, $LargeurImageDepart, $HauteurImageDepart);



A noter que j'ai repris un morceau de mon code, à adapter donc...
0