PHP - Upload file
Résolu
J@rodd
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
DoulyCreation Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
DoulyCreation Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir si quelqu'un a une solution concernant ce petit probleme!
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,
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:
- PHP - Upload file
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Iso file - Guide
- Youtube upload - Télécharger - Diffusion
2 réponses
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
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
Bonjour,
Il me semble que pour garder la transparence d'une image dans le cas d'un PNG il faut mettre le code suivant :
A noter que j'ai repris un morceau de mon code, à adapter donc...
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...