par
Mimos@ » 24 nov. 2006, 21:01
Bon voila, j'ai franchi le pas, me suis inscrit.
Il est vrai que niveau sécurité j'ai vraiment du mal. et si quelqu'un avait quelque solution.
N'en serait-elle pas une que de renommer le fichier à l'upload ? de plus se serait plus simple pour s'y retrouver en les nomment par exemple, 01.jpg, 02.jpg, 03.png.......
<?php
if(isset($_FILES['photo']) && isset($_POST['manga']))
{
$lequel = $_POST['manga'];
$dossier = '/mnt/112/free.fr/b/c/snshinobi/images/'.$lequel.'/';
$dir_mini = '/mnt/112/free.fr/b/c/snshinobi/images/mini/'.$lequel.'/';
$fichier = $_FILES['photo']['name'];
$taille_fichier = $FILES['photo']['size'];
if(substr($fichier, -3)=="jpg" || substr($fichier, -3)=="gif" || substr($fichier, -3)=="png")
{
if($taille_fichier <= 4194304)
{
if (is_file('/mnt/112/free.fr/b/c/snshinobi/images/'.$lequel.'/'.$_FILES['photo']['name'])) $file_upload = '_'.$_FILES['photo']['name'];
else $file_upload = $_FILES['photo']['name'];
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier.'/'.$file_upload))
{
echo 'Upload réussi';
$largeurDestination = 150;
$hauteurDestination = 150;
$miniature = "mini_$fichierSource";
If (substr($fichier, -3)=="gif")
{
// ceci est une image GIF
$image1=imagecreatefromgif($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagegif($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
elseif (substr($fichier, -3)=="jpg")
{
// ceci est une image JPG
$image1=imagecreatefromjpeg($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagejpeg($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
elseif (substr($fichier, -3)=="png")
{
// ceci est une image png
$image1=imagecreatefrompng($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagepng($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
}
else
{
echo 'Erreur dans upload';
}
}
else
{
echo 'l image est trop grande. taille maxi 4mo';
}
}
else
{
echo 'le fichier n\'est pas une image';
}
}
?>
faudrait mieux qu'il fasse un switch pour manga, on peut facilement détourner le dossier sinon
un switch pour manga ? je le passe par une liste déroulante.[/code]
Bon voila, j'ai franchi le pas, me suis inscrit.
Il est vrai que niveau sécurité j'ai vraiment du mal. et si quelqu'un avait quelque solution.
N'en serait-elle pas une que de renommer le fichier à l'upload ? de plus se serait plus simple pour s'y retrouver en les nomment par exemple, 01.jpg, 02.jpg, 03.png.......
[php]<?php
if(isset($_FILES['photo']) && isset($_POST['manga']))
{
$lequel = $_POST['manga'];
$dossier = '/mnt/112/free.fr/b/c/snshinobi/images/'.$lequel.'/';
$dir_mini = '/mnt/112/free.fr/b/c/snshinobi/images/mini/'.$lequel.'/';
$fichier = $_FILES['photo']['name'];
$taille_fichier = $FILES['photo']['size'];
if(substr($fichier, -3)=="jpg" || substr($fichier, -3)=="gif" || substr($fichier, -3)=="png")
{
if($taille_fichier <= 4194304)
{
if (is_file('/mnt/112/free.fr/b/c/snshinobi/images/'.$lequel.'/'.$_FILES['photo']['name'])) $file_upload = '_'.$_FILES['photo']['name'];
else $file_upload = $_FILES['photo']['name'];
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier.'/'.$file_upload))
{
echo 'Upload réussi';
$largeurDestination = 150;
$hauteurDestination = 150;
$miniature = "mini_$fichierSource";
If (substr($fichier, -3)=="gif")
{
// ceci est une image GIF
$image1=imagecreatefromgif($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagegif($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
elseif (substr($fichier, -3)=="jpg")
{
// ceci est une image JPG
$image1=imagecreatefromjpeg($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagejpeg($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
elseif (substr($fichier, -3)=="png")
{
// ceci est une image png
$image1=imagecreatefrompng($dossier.'/'.$file_upload);
$image2=imagecreatetruecolor($largeurDestination, $hauteurDestination);
$largeurSource = imagesx($image1);
$hauteurSource = imagesy($image1);
imagecopyresized($image2, $image1, 0, 0, 0, 0, $largeurDestination-(2*8), $hauteurDestination-(2*8), $largeurSource, $hauteurSource);
imagepng($image2, $dir_mini.'/'.$file_upload);
echo "<br />Image miniature générée: $miniature";
}
}
else
{
echo 'Erreur dans upload';
}
}
else
{
echo 'l image est trop grande. taille maxi 4mo';
}
}
else
{
echo 'le fichier n\'est pas une image';
}
}
?>[/php]
[quote]faudrait mieux qu'il fasse un switch pour manga, on peut facilement détourner le dossier sinon[/quote]
un switch pour manga ? je le passe par une liste déroulante.[/code]