Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd - upload zdjęć
Forum PHP.pl > Forum > Przedszkole
armind
Witam mam problem na vps, na zwykłym serwerze ten skrypt działa

kod błędu z var_dump()

array(1) { ["upload_submit"]=> array(5) { ["name"]=> array(1) { [0]=> string(9) "Koala.jpg" } ["type"]=> array(1) { [0]=> string(10) "image/jpeg" } ["tmp_name"]=> array(1) { [0]=> string(14) "/tmp/php0B7Scp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(780831) } } }

skrypt:

  1. <div class="news" style="font-size: 15px;">
  2. <h1>Dodaj fotkę</h1>
  3. <br/><br/>
  4. <center>
  5. <?php
  6. var_dump($_FILES);
  7.  
  8.  
  9. $config = array();
  10. $config['thumbnail_width'] = 180; // maksymalna szerokoć miniatury w pikselach
  11. $config['thumbnail_height'] = 160; // maksymalna wysokoć miniatury w pikselach
  12. $config['thumbnail_scale'] = true; // czy przy minimalizowaniu wielkoci zachowywać skalę?
  13. $config['path_images'] = 'upload/'; // cieżka do katalogu grafik
  14. $config['path_thumbnails'] = 'upload/thumbnails/'; // cieżka do katalogu miniatur
  15. $config['max_file_size'] = 1048576; // maksymalna wielkoć pliku w bajtach, 1MB
  16. $config['accepted_extensions'] = array('jpg', 'jpeg'); // dozwolone rozszerzenia
  17. $config['accepted_mimes'] = array('image/jpg', 'image/jpeg'); // dozwolone typy MIME
  18.  
  19. function generateThumbnail($filename, $extension)
  20. {
  21. global $config;
  22. // stworzenie nowej grafiki wg typu
  23. switch ( $extension )
  24. {
  25. default:
  26. $ic = imagecreatefromjpeg($config['path_images'] . $filename);
  27. break;
  28. }
  29. if ( $ic === false )
  30. {
  31. return 'Miniaturka nie stworzona!';
  32. }
  33. $is = getimagesize($config['path_images'] . $filename); // [0] - szerokoć, [1] - wysokoć
  34. switch ( $config['thumbnail_scale'] )
  35. {
  36. case false: // zmniejszanie bezporednio do 180x160px
  37. $nts = imagecreatetruecolor($config['thumbnail_width'], $config['thumbnail_height']);
  38. imagecopyresized($nts, $ic, 0, 0, 0, 0, $config['thumbnail_width'], $config['thumbnail_height'], $is[0], $is[1]);
  39. break;
  40. default: // zmniejszanie z zachowaniem skali, aż do osiągnięcia co najmniej 180x160px
  41. $width = $is[0];
  42. $height = $is[1];
  43. $ratio = $is[0] / $config['thumbnail_width'];
  44. if ( $ratio > 1 )
  45. {
  46. $width = $config['thumbnail_width'];
  47. $height = intval($is[1] / $ratio);
  48. }
  49. $ratio = $height / $config['thumbnail_height'];
  50. if ( $ratio > 1 )
  51. {
  52. $width = intval($width / $ratio);
  53. $height = $config['thumbnail_height'];
  54. }
  55. $nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tłem
  56. imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
  57. }
  58. switch ( $extension ) // zapis do pliku
  59. {
  60. default:
  61. imagejpeg($nts, $config['path_thumbnails'] . $filename);
  62. break;
  63. }
  64. imagedestroy($nts); // zniszczenie obrazka
  65. return $config['path_thumbnails'] . $filename;
  66. }
  67.  
  68.  
  69.  
  70.  
  71.  
  72. if (!empty($_POST['sent'])) {
  73. if (!empty($_POST['nick']) && (!empty($_FILES['upload_submit']))) {
  74. // pętla analizująca zawartoć wszystkich trzech potencjalnie wysyłanych plików
  75. foreach ( $_FILES['upload_image']['error'] as $key => $arr )
  76. {
  77. if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
  78. {
  79. // błąd wysyłania pliku
  80. continue;
  81. }
  82. if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
  83. {
  84. // plik jest za duży
  85. continue;
  86. }
  87.  
  88. $extension = explode('.', $_FILES['upload_image']['name'][$key]);
  89.  
  90.  
  91. $l = rand(100,999); // Losowanie Liczby
  92.  
  93. $name2x = time() * $l; //Generowanie Nazwy czas * liczba
  94.  
  95. $namenowa = "$name2x.$extension[1]"; //Nowa nazwa z rozszerzeniem
  96.  
  97.  
  98. if ( in_array(strtolower($extension[count($extension)-1]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false )
  99. {
  100. // niepoprawne rozszerzenie pliku
  101. continue;
  102. }
  103. $image = getimagesize($_FILES['upload_image']['tmp_name'][$key]);
  104. if ( !is_array($image) || $image[0] < 1 )
  105. {
  106. // plik graficzny jest spreparowany
  107. continue;
  108. }
  109. if ( !is_uploaded_file($_FILES['upload_image']['tmp_name'][$key]) )
  110. {
  111. // plik nie został wysłany
  112. continue;
  113. }
  114. if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $namenowa) )
  115. {
  116. // wysyłanie nie może zostać zakończone poprawnie
  117. continue;
  118. }
  119. // wysyłanie pliku powiodło się!
  120. // opcjonalnie, jeżeli chcemy tylko z poziomu skrypt mieć dostęp do plików możemy odkomentować poniższa linijkę
  121. // chmod($config['path_images'] . $_FILES['upload_image']['name'][$key], 0600);
  122. $namen=strtolower(trim($_POST['nick']));
  123. mysql_query("INSERT INTO images (filename, name, active) VALUES ('$namenowa', '$namen', '0')");
  124. print generateThumbnail($namenowa, $extension[count($extension)-1]); // funkcja tworząca miniaturkę
  125. }
  126. } else { echo '<font color="red">Wypełnij wszystkie pola!</font>';
  127. }
  128. }
  129. ?>
  130. <form method="post" action="" enctype="multipart/form-data">
  131. <table>
  132. <tr><td>Nick:</td><td><input type="text" name="nick" value="" placeholder="Wpisz ksywkę"/></td></tr>
  133. <tr><td></td><td></td></tr>
  134. <tr style="padding-top: 10px;"><td>Fotka:</td><td><input type="file" name="upload_submit[]"/></td></tr>
  135. </table><br /><br />
  136. <input type="submit" value="Wyślij" name="sent" />
  137. </form>
  138. </center>
  139. </div>
werdan
Moze problem z prawami dostępu. Dałeś var_dump() z $_FILE. Mozesz wkleic tresc błedu?
armind
Tzn nie bardzo rozumiem?

mar1aczi
Podałeś, co zawiera $_FILES, ale nie podałeś żadnych informacji odnośnie błędu.
armind
Błąd się nie wyswietla

jak napisałem skrypt prawidłowo działą na serwerze np o12 a na vps nie działa, mysle ze trzeba pokombinować w php.ini. ale niestety nie ogarniam vps
pedro84
Co logi mówią?
werdan
Co sie dzieje jak zakomentujesz linie 6 ? tongue.gif

Jest jakis bład na ekranie?
valkirek
Jak nie ogarniasz vps to może sam się ogarniesz i w końcu napiszesz jaki jest błąd? Błąd z var_dump mówi tyle co nic
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.