Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wysyłanie obrazków na serwer
Forum PHP.pl > Forum > Przedszkole
Vion
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.

  1. <form method="post" action="upload.php" enctype="multipart/form-data">
  2. <input name="image_filename1" type="file" size="29"><br><br>
  3. <input type="submit" value="Dodaj">
  4. </form>


  1. <?php
  2.  
  3.  
  4. $image_filename1 = $_FILES['image_filename1']['name'];
  5. $image_size = $_FILES['image_filename1']['size'];
  6. $ImageDir= "photo/";
  7. $ImageThumb = $ImageDir . "thumbs/";
  8. $ImageName= $ImageDir . $image_filename1;
  9.  
  10.  
  11. if (empty($image_filename1)) {
  12. $error .="Musisz+wybrac+plik+graficzny<br>";
  13. }
  14.  
  15.  
  16.  
  17. list($width, $height, $type) = getimagesize($_FILES['image_filename1']['tmp_name']);
  18. if ($image_size > 2097152) {
  19. $error .="Rozmiar+pliku+graficznego+nie+moze+przekraczac+2MB<br>";
  20. }
  21. if($width >1280) {
  22. $error .="Szerokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";
  23. }
  24. if($height >800) {
  25. $error .="Wysokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";
  26. }
  27.  
  28. if ($type > 3) {
  29. $error .=ulrencode("Przykro+nam+ale+poday+obraz+jest+w+zlym+formacie+!");
  30. }
  31. if (empty($error)) {
  32. if (move_uploaded_file($_FILES['image_filename1']['tmp_name'], $ImageName)) {
  33.  
  34.  
  35. $lastpicid = 1;
  36. $newfilename = $ImageDir . $lastpicid . ".jpg";
  37.  
  38. if ($type == 2) {
  39. rename($ImageName, $newfilename);
  40. } else {
  41. if ($type == 1) {
  42. $image_old = imagecreatefromgif($ImageName);
  43. } elseif ($type == 3) {
  44. $image_old = imagecreatefrompng($ImageName);
  45. }
  46.  
  47. $image_jpg = imagecreatetruecolor($width, $height);
  48. imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height);
  49. imagejpeg($image_jpg, $newfilename);
  50. imagedestroy($image_old);
  51. imagedestroy($image_jpg);
  52.  
  53. }
  54. //**WSTAW NASTĘPUJˇCE WIERSZE
  55. $newthumbname = $ImageThumb . $lastpicid . ".jpg";
  56.  
  57. // pobierz wymiary miniaturki
  58. $width_thumb= 94;
  59. $height_thumb= 70;
  60.  
  61.  
  62. // utwórz miniaturkę
  63. $largeimage = imagecreatefromjpeg($newfilename);
  64. $thumb = imagecreatetruecolor($width_thumb, $height_thumb);
  65. imagecopyresampled($thumb, $largeimage, 0, 0, 0, 0,
  66. $width_thumb, $height_thumb, $width, $height);
  67. imagejpeg($thumb, $newthumbname);
  68. imagedestroy($largeimage);
  69. imagedestroy($thumb);
  70.  
  71.  
  72.  
  73. }}
Kshyhoo
Musisz wrzucić pliki w tablicę.
inputy:
  1. <input type="file" name="ufile[0]" />

a potem jakąś pętelką:
  1. for ($i=0; $i<sizeof($_FILES['ufile']['size']); $i++) {
Vion
Chodzi o coś takiego ?
  1. <form method="post" action="transact_notice.php" enctype="multipart/form-data">
  2. <input name="ufile[1]" type="file" size="29"><br><br>
  3. <input name="ufile[2]" type="file" size="29"><br><br>
  4. <input name="ufile[3]" type="file" size="29"><br><br>
  5. <input name="ufile[4]" type="file" size="29"><br><br>
  6. <input name="ufile[5]" type="file" size="29"><br><br>
  7. <input name="ufile[6]" type="file" size="29"><br><br>
  8.  
  9. <input type="submit" value="Dodaj">
  10. </form>


  1. <?php
  2.  
  3.  
  4. for ($i=1; $i<sizeof($_FILES['ufile']['size']); $i++) {
  5. $image_filename1 = $_FILES['image_filename1']['name'];
  6. $image_size = $_FILES['image_filename1']['size'];
  7. $ImageDir= "photo/";
  8. $ImageThumb = $ImageDir . "thumbs/";
  9. $ImageName= $ImageDir . $image_filename1;
  10.  
  11.  
  12. if (empty($image_filename1)) {
  13. $error .="Musisz+wybrac+plik+graficzny<br>";
  14. }
  15.  
  16.  
  17.  
  18. list($width, $height, $type) = getimagesize($_FILES['image_filename1']['tmp_name']);
  19. if ($image_size > 2097152) {
  20. $error .="Rozmiar+pliku+graficznego+nie+moze+przekraczac+2MB<br>";
  21. }
  22. if($width >1280) {
  23. $error .="Szerokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";
  24. }
  25. if($height >800) {
  26. $error .="Wysokosc+obrazka+nie+moze+byc+wieksza+niz+1280+pikseli";
  27. }
  28.  
  29. if ($type > 3) {
  30. $error .=ulrencode("Przykro+nam+ale+poday+obraz+jest+w+zlym+formacie+!");
  31. }
  32. if (empty($error)) {
  33. if (move_uploaded_file($_FILES['image_filename1']['tmp_name'], $ImageName)) {
  34.  
  35.  
  36. $lastpicid = $i;
  37. $newfilename = $ImageDir . $lastpicid . ".jpg";
  38.  
  39. if ($type == 2) {
  40. rename($ImageName, $newfilename);
  41. } else {
  42. if ($type == 1) {
  43. $image_old = imagecreatefromgif($ImageName);
  44. } elseif ($type == 3) {
  45. $image_old = imagecreatefrompng($ImageName);
  46. }
  47.  
  48. $image_jpg = imagecreatetruecolor($width, $height);
  49. imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height);
  50. imagejpeg($image_jpg, $newfilename);
  51. imagedestroy($image_old);
  52. imagedestroy($image_jpg);
  53.  
  54. }
  55. //**WSTAW NASTĘPUJˇCE WIERSZE
  56. $newthumbname = $ImageThumb . $lastpicid . ".jpg";
  57.  
  58. // pobierz wymiary miniaturki
  59. $width_thumb= 94;
  60. $height_thumb= 70;
  61.  
  62.  
  63. // utwórz miniaturkę
  64. $largeimage = imagecreatefromjpeg($newfilename);
  65. $thumb = imagecreatetruecolor($width_thumb, $height_thumb);
  66. imagecopyresampled($thumb, $largeimage, 0, 0, 0, 0,
  67. $width_thumb, $height_thumb, $width, $height);
  68. imagejpeg($thumb, $newthumbname);
  69. imagedestroy($largeimage);
  70. imagedestroy($thumb);
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78. }}}
  79.  
Kshyhoo
No coś w tym stylu. Działa Ci to?

EDIT. Możesz też zrobić tak:
  1. <input type="file" multiple name="ufile[]" />

Ale:
Cytat
Funkcję tę posiadają tylko najnowsze przeglądarki, obsługujące HTML5 typu Gecko 1.9.2 (dostępne m. in. w FireFox 3.6) oraz nowsze wersje przeglądarek opartych na silniku WebKit obsługujące atrybut multiple elementu <input> z atrybutem type="file". Atrybut ten pozwala do jednego inputa wstawić wiele plików.
Vion
Nie sad.gif
Vion
ale jak to zastosować w moim skrypcie ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.