Witam, chcę żeby można było wgrywać plik graficzny na serwer. Nie chcę ustawiać max. rozmiaru na wgrywany plik. Jeżeli dany plik będzie zbyt wielki, program automatycznie zmniejszy go do rozmiarów jakie mnie interesują. Jeżeli plik będzie mniejszy od standardu , program nie będzie go zmieniać. Mam do tego taki oto kod.
Funkcja tworzenia odpowiedniego obrazu (skorzystałem z kodu na tworzenie minitury):
function miniaturka1($file,$img,$imgdest) {
if(file_exists($img)){
list($width, $height) = getimagesize($img);
if ($width>$height)
{
if ($width>=700) {
$x = '700';
$y = ($x / $width) * $height;
}
else {
$x= $width;
$y= $height;
}
}else{
if ($height>=600) {
$y = '600';
$x = ($y / $height) * $width;
}
else {
$x= $width;
$y= $height;
}
}
if(exif_imagetype($img)==2){
$img1 = imagecreatefromjpeg($img);
$imgdest1 = imagecreatetruecolor($x, $y);
imagecopyresampled($imgdest1, $img1, 0, 0, 0, 0, $x, $y, $width, $height);
imagejpeg($imgdest1,$imgdest);
}
if(exif_imagetype($img)==1){
$img1 = imagecreatefromgif($img);
$imgdest1 = imagecreate($x, $y);
imagecopyResampled($imgdest1, $img1, 0, 0, 0, 0, $x, $y, $width, $height);
imagejpeg($imgdest1,$imgdest);
}
imagedestroy($img1);
imagedestroy($imgdest1);
}
}
kod:
$uploadfile = array('');
$files = array('');
$licznik = 0;
for($a=1; $a<=6; $a++){
$plik = "photo$a";
if($_FILES[$plik]['size'] != 0){
$nazwa_pliku = $_FILES[$plik]['name'];
if($_FILES[$plik]['type'] == "image/jpg" || $_FILES[$plik]['type'] == "image/jpeg" || $_FILES[$plik]['type'] == "image/pjpeg" || $_FILES[$plik]['type'] == "image/gif"){
$ext = ".jpg";
}
else{
$errortext[$i]='Dozwolone formaty pliku to: *.jpg.<BR>'; $i++; $error=true;
}
$pre = 'obraz';
$rand = rand(100000, 999999);
$file = "$pre.$rand$ext";
$folder = "zdjecia/";
while(file_exists($name)){
$pre = 'obraz';
$rand = rand(100000, 999999);
$file = "$pre.$rand$ext";
$folder = "zdjecia/";
}
$files[$a] = $file;
if(!file_exists($folder)){ $errortext[$i]='Wystąpił błąd. Spróbuj dodać plik ponownie.<BR>'; $i++; $error=true;}
$uploaddir = getcwd()."/$folder";
$uploadfile[$a] = "$uploaddir$file";
$licznik++;
}
}
}
}
else{ $errortext[$i]='Wystąpił błąd. Nie wykonano operacji.<BR>'; $i++; $error=true;}
if($error==false){
for($a=1; $a<=6; $a++){
$plik = "photo$a";
if($_FILES[$plik]['size']!= 0){
$folder = "zdjecia/";
## miniaturka ##
$file = $files[$a];
$img = $_FILES[$plik]['tmp_name'];
$imgdest = "$folder$file";
miniaturka1($file,$img,$imgdest);
} } }
formularz:
echo'<TR><TD>';
for($a=1;$a<=6;$a++){
echo'<INPUT type=file name="photo'.$a.'" class=cell2><BR>';
}
echo'</TD></TR>';
Oceńcie według siebie, czy można by to jakoś inaczej zrobić, łatwiej czy spraniej