Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload zdjęcia na serwer
Forum PHP.pl > Forum > Przedszkole
piachu
Proszę rzućcie okiem bo ja już nie mam pomysłu. Dlaczego ten skrypt nie działa? Nie wyrzuca żadnego komunikatu o błędzie a jednak plik nie zostaje przeniesiony na serwer.
Dziękuję za pomoc.


  1. <?php
  2. function upload_photo($nazwa) {
  3. $max_photo_size = 150000;
  4. $err_msg = true;
  5.  
  6. do {
  7.  if (!isset ($_FILES['fotka'])) {
  8.  $err_msg = "Brak fotki";
  9.  break;
  10.  } else {
  11. $fotka = $_FILES['fotka'];
  12.  }
  13.  
  14.  switch ($fotka['error']) {
  15.  case UPLOAD_ERR_INI_SIZE:  
  16.  $err_msg = "Za duże zdjęcie. Maksymalny rozmiar zdjęcia to 150kB.";
  17.  break 2;
  18.  case UPLOAD_ERR_PARTIAL:
  19.  $err_msg = "Wystąpił błąd podczas przesyłania pliku na serwer.";
  20.  break 2;
  21.  case UPLOAD_ERR_FORM_SIZE:
  22.  $err_msg = "Za duże zdjęcie. Maksymalny rozmiar zdjęcia to 150kB.";
  23.  break 2;
  24.  case UPLOAD_ERR_OK:
  25.  if ($fotka['size'] > $max_photo_size) {
  26.  $err_msg = "Za duże zdjęcie. Maksymalny rozmiar zdjęcia to 150kB.";
  27.  }
  28.  break 2;
  29.  default:
  30.  $err_msg = "Wystąpił nieznany błąd.";
  31.  }
  32.  
  33.  // sprawdzamy czy plik to jpg
  34.  if (!in_array($fotka['type'], array('image/jpeg'))) {
  35.  $err_msg = "Zdjęcie może być tylko formatu jpeg!!!";
  36.  break;
  37.  }  
  38. } while (0);
  39.  
  40. // jeśli blad nie wystapil przenosimy zdjecie do folderu z fotkami
  41. if (!$err_msg) {
  42. if (!@move_uploaded_file($fotka['tmp_name'], "newsy/" . $nazwa . ".jpg")) {
  43. $err_msg = "Błąd podczas przenoszenia pliku na serwerze.";
  44. } else { 
  45. chmod("newsy/" . $nazwa . ".jpg", 0777);
  46. /////////////////////////////////////// Tworzenie miniaturki ///////////////////////////////////////
  47. $out = "newsy/" . "tn" . $nazwa . ".jpg";
  48. $file = "newsy/" . $nazwa . ".jpg";
  49.  
  50. $max_width = 150;
  51. $max_height = 100;
  52.  
  53. $size = GetImageSize($file);
  54. $width = $size[0];
  55. $height = $size[1];
  56.  
  57. $x_ratio = $max_width / $width;
  58. $y_ratio = $max_height / $height;
  59.  
  60. if ( ($width <= $max_width) && ($height <= $max_height) ) {
  61. $tn_width = $width;
  62. $tn_height = $height;
  63. }
  64. else if (($x_ratio * $height) < $max_height) {
  65. $tn_height = ceil($x_ratio * $height);
  66. $tn_width = $max_width;
  67. }
  68. else {
  69. $tn_width = ceil($y_ratio * $width);
  70. $tn_height = $max_height;
  71. }
  72.  
  73. $src = ImageCreateFromJpeg($file);
  74. $dst = ImageCreateTrueColor($tn_width,$tn_height);
  75. ImageCopyResampled($dst, $src, 0, 0, 0, 0, $tn_width,$tn_height,$width,$height);
  76.  
  77. ImageJpeg($dst, $out, 75);
  78. ImageDestroy($src);
  79. ImageDestroy($dst);
  80. chmod("newsy/tn" . $nazwa . ".jpg", 0777);
  81. /////////////////////////////////////// Koniec tworzenia miniaturki ///////////////////////////////////////
  82. }
  83. }
  84. return $err_msg;
  85. }
  86. ?>
Wieviór
Nie czytałem, ale skoro nie wyświetla komunikatu to może CHMODY?... smile.gif
piachu
Chmod na katalog, do ktorego powinien przerzucac zdjecia jest ustawiony na 777...
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.