Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Upload zdjec - problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
dzikul
Witam.
Znalazlem gdzies na necie skrypt ktory uploaduje zdjecia do katalogu.. Troche przerobilem i mam problem... tworzy sie katalog podany w formularzu, ale nie zapisuja sie w nim zadne pliki a co za tym idzie nie mam zdjec i ich miniaturek:/ Nie wiem gdzie jest blad, dopiero zaczynam przygode z php:/
Moze ktos mi pomoc z tym ?? Z gory dziekuje...
Plik wyglada tak:
  1. <form action="index.php" method="post" enctype="multipart/form-data">
  2. <p><input type="text" name="folder" /> Nazwa katalogu</p>
  3. <p><input type="file" name="upload_image[]" /></p>
  4. <p><input type="file" name="upload_image[]" /></p>
  5. <p><input type="file" name="upload_image[]" /></p>
  6. <p><input type="submit" name="upload_submit" value="Wyslij!" /></p>
  7. </form>
  8. <?php
  9. function generateThumbnail($filename, $extension)
  10. {
  11. global $config;
  12. // sprawdzenie, czy plik o podanej nazwie juz nie istnieje
  13. if ( file_exists($config['path_thumbnails'] . $filename) )
  14. {
  15. unlink($config['path_thumbnails'] . $filename); // usuniecie miniatury
  16. }
  17. // stworzenie nowej grafiki wg typu
  18. switch ( $extension )
  19. {
  20. case 'gif':
  21. $ic = imagecreatefromgif($config['path_images'] . $filename);
  22. break;
  23. case 'png':
  24. $ic = imagecreatefrompng($config['path_images'] . $filename);
  25. break;
  26. default:
  27. $ic = imagecreatefromjpeg($config['path_images'] . $filename);
  28. break;
  29. }
  30. if ( $ic === false )
  31. {
  32. return 'Miniaturka nie stworzona!';
  33. }
  34. $is = getimagesize($config['path_images'] . $filename); // [0] - szerokosc, [1] - wysokosc
  35. switch ( $config['thumbnail_scale'] )
  36. {
  37. case false: // zmniejszanie bezposrednio do 180x160px
  38. $nts = imagecreatetruecolor($config['thumbnail_width'], $config['thumbnail_height']);
  39. imagecopyresized($nts, $ic, 0, 0, 0, 0, $config['thumbnail_width'], $config['thumbnail_height'], $is[0], $is[1]);
  40. break;
  41. default: // zmniejszanie z zachowaniem skali, az do osiagniecia co najmniej 180x160px
  42. $width = $is[0];
  43. $height = $is[1];
  44. $ratio = $is[0] / $config['thumbnail_width'];
  45. if ( $ratio > 1 )
  46. {
  47. $width = $config['thumbnail_width'];
  48. $height = intval($is[1] / $ratio);
  49. }
  50. $ratio = $height / $config['thumbnail_height'];
  51. if ( $ratio > 1 )
  52. {
  53. $width = intval($width / $ratio);
  54. $height = $config['thumbnail_height'];
  55. }
  56. $nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tlem
  57. imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
  58. }
  59. switch ( $extension ) // zapis do pliku
  60. {
  61. case 'gif':
  62. imagegif($nts, $config['path_thumbnails'] . $filename);
  63. break;
  64. case 'png':
  65. imagepng($nts, $config['path_thumbnails'] . $filename);
  66. break;
  67. default:
  68. imagejpeg($nts, $config['path_thumbnails'] . $filename);
  69. break;
  70. }
  71. imagedestroy($nts); // zniszczenie obrazka
  72. return $config['path_thumbnails'] . $filename;
  73. }
  74. $config = array();
  75. $config['thumbnail_width'] = 180;
  76. $config['thumbnail_height'] = 160; // maksymalna wysokosc miniatury w pikselach
  77. $config['thumbnail_scale'] = true; // czy przy minimalizowaniu wielkosci zachowywac skale?
  78. $config['path_images'] = $_POST['folder']; // sciezka do katalogu grafik
  79. $config['path_thumbnails'] = $_POST['folder']; // sciezka do katalogu miniatur
  80. $config['max_file_size'] = 10485760; // maksymalna wielkosc pliku w bajtach, 1MB
  81. $config['accepted_extensions'] = array('jpg', 'jpeg', 'png', 'gif'); // dozwolone rozszerzenia
  82. $config['accepted_mimes'] = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif'); // dozwolone typy MIME
  83. if ( !file_exists($config['path_images']) || !is_dir($config['path_images']) ) {
  84. if ( !mkdir($config['path_images'],0777) ) { // utworzenie katalogu wraz
  85. exit('Folder obrazków niemozliwy do utworzenia!');
  86. }
  87. chmod($config['path_ images'], 0777); // nadanie praw
  88. }
  89. if ( !file_exists($config['path_thumbnails']) || !is_dir($config['path_thumbnails']) ) {
  90. if ( !mkdir($config['path_thumbnails'],0777) ) { // utworzenie katalogu
  91. exit('Folder miniaturek niemozliwy do utworzenia!');
  92. }
  93. chmod($config['path_thumbnails'], 0777); // nadanie praw
  94. }
  95. if ( !extension_loaded('gd') ) { // sprawdzenie, czy GD jest zaladowane
  96. if ( !dl('gd') ) { // próba wymuszenia zaladowania
  97. exit('Biblioteka GD nie zostala zaladowana!');
  98. }
  99. }
  100. if ( isset($_FILES['upload_image']) && isset($_POST['upload_submit']) )
  101. {
  102. // petla analizujaca zawartosc wszystkich trzech potencjalnie wysylanych plików
  103. foreach ( $_FILES['upload_image']['error'] as $key => $arr )
  104. {
  105. if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
  106. {
  107. // blad wysylania pliku
  108. continue;
  109. }
  110. if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
  111. {
  112. // plik jest za duzy
  113. continue;
  114. }
  115. if ( file_exists($config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  116. {
  117. // poinformowanie uzytkownika o fakcie, ze plik o takiej nazwie juz istnieje
  118. continue;
  119. }
  120. $extension = explode('.', $_FILES['upload_image']['name'][$key]);
  121. if ( in_array(strtolower($extension[count($extension)-1]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false )
  122. {
  123. // niepoprawne rozszerzenie pliku
  124. continue;
  125. }
  126. $image = getimagesize($_FILES['upload_image']['tmp_name'][$key]);
  127. if ( !is_array($image) || $image[0] < 1 )
  128. {
  129. // plik graficzny jest spreparowany
  130. continue;
  131. }
  132. if ( !is_uploaded_file($_FILES['upload_image']['tmp_name'][$key]) )
  133. {
  134. // plik nie zostal wyslany
  135. continue;
  136. }
  137. if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  138. {
  139. // wysylanie nie moze zostac zakonczone poprawnie
  140. continue;
  141. }
  142. // wysylanie pliku powiodlo sie!
  143. print generateThumbnail($_FILES['upload_image']['name'][$key], $extension[count($extension)-1]); // funkcja tworzaca miniaturke
  144. }
  145. }
  146. ?>
erix
Sprawdź, czy skrypt faktycznie ustawia odpowiednie uprawnienia, czy jest z tym problem.

Włącz raportowanie błędów i podaj ich treść.
dzikul
hej.
dzieki za odpowiedz.
bledy jakie mam to:

Warning: chmod() [function.chmod]: Unable to access in /var/www/sat114/html/testowy/index.php on line 87
Warning: chmod() [function.chmod]: stat failed for in /var/www/sat114/html/testowy/index.php on line 87

skrypt tworzy mi katalog o atrybutach 755;/
eh:/
pozdr

hmm.. wie ktos czemu to nie dziala?;/ nie moge tego rozszyfrowac..
erix
Spróbuj zmienić chmod dla katalogu nadrzędnego na 0777 przez FTP.
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.