[PHP] Wysyłanie obrazków na serwer


(Vion91) #1

Witam

Mam o to taki formularz do wysyłania obrazków, oraz skrypt który przetwarza obrazek(tworzy jego miniaturę). I teraz jak zrobić abym mógł wysłać 6 plików graficznych za pomocą jednego formularza.



<?php



					$image_filename1 = $_FILES['image_filename1']['name'];

					$image_size = $_FILES['image_filename1']['size'];

					$ImageDir= "photo/";

					$ImageThumb = $ImageDir . "thumbs/";

					$ImageName= $ImageDir . $image_filename1;



				if (empty($image_filename1)) {

						$error .="Musisz+wybrac+plik+graficzny
";

				}




				list($width, $height, $type) = getimagesize($_FILES['image_filename1']['tmp_name']);

				if ($image_size > 2097152) {

						$error .="Rozmiar+pliku+graficznego+nie+moze+przekraczac+2MB
";

					}

				if($width >1280) {

							$error .="Szerokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";

					}

				if($height >800) {

							$error .="Wysokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";

					}


				if ($type > 3) {

						$error .=ulrencode("Przykro+nam+ale+poday+obraz+jest+w+zlym+formacie+!");

					}

				if (empty($error)) {

					if (move_uploaded_file($_FILES['image_filename1']['tmp_name'], $ImageName)) {



						$lastpicid = 1;

						$newfilename = $ImageDir . $lastpicid . ".jpg";


						if ($type == 2) {

						rename($ImageName, $newfilename);

						} else {

						if ($type == 1) {

						$image_old = imagecreatefromgif($ImageName);

						} elseif ($type == 3) {

						$image_old = imagecreatefrompng($ImageName);

						}


						$image_jpg = imagecreatetruecolor($width, $height);

						imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height);

						imagejpeg($image_jpg, $newfilename);

						imagedestroy($image_old);

						imagedestroy($image_jpg);


						}

						//**WSTAW NASTĘPUJˇCE WIERSZE

						$newthumbname = $ImageThumb . $lastpicid . ".jpg";


						// pobierz wymiary miniaturki

						$width_thumb= 94;

						$height_thumb= 70; 



						// utwórz miniaturkę

						$largeimage = imagecreatefromjpeg($newfilename);

						$thumb = imagecreatetruecolor($width_thumb, $height_thumb);

							imagecopyresampled($thumb, $largeimage, 0, 0, 0, 0, 

							$width_thumb, $height_thumb, $width, $height);

						imagejpeg($thumb, $newthumbname);

						imagedestroy($largeimage);

						imagedestroy($thumb);




					}}

(Anddezr+Dobreprogramy Pl) #2

http://php.net/manual/en/features.file- ... ltiple.php


(Mathew) #3

Zrobić 6 inputów i zmodyfikować kod PHP.


(Vion91) #4

Zrobiłem coś takiego, ale nie działa.



for ($i=1;$i<2;$i++){

					$image_filename . $i = $_FILES['image_filename' . $i]['name'];

					$image_size = $_FILES['image_filename' . $i]['size'];


					$ImageDir= "photo/";

					$ImageThumb = $ImageDir . "thumbs/";

					$ImageName= $ImageDir . $image_filename . $i;




					if (move_uploaded_file($_FILES['image_filename' . $i]['tmp_name'], $ImageName)) {

					}}

(Neluto) #5

zrob sobie mniej wiecej tak

$ext = array("zip","rar","jpg","jpeg","gif","png"); //tu sobie zmien

  foreach ($_FILES as $file) {

    if ($file['tmp_name'] > '') {

      if (!in_array(end(explode(".",

            strtolower($file['name']))),$ext)) {

       die($file['name'].' Jest niewlaciwym plikiem!
');

      }

      else

      {

        if(move_uploaded_file($file['tmp_name'],'../files/'.$file['name']))

                           $jakas zmiena[]=$file['name'];// dzieki temu mozesz pozniej miec dostep do nazw plikow

      }

    }

  }        

    // tu mozesz zrobic miniaturke i co tam sobie chcesz

inputy mozesz sobie zrobic juz jak chcesz w formularzu


(Vion91) #6

Dzięki, oto mi chodziło :slight_smile: