Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Nie upladuje plikow - galeria
Forum PHP.pl > Forum > Przedszkole
pl65
Napisałem taki skrypt do wysyłania plików do galerii. Po wysłaniu pliku przez formularz zamiast zapisać plik wyświetla ponownie formularz. Co jest w tym skrypcie złego?

  1. <?php
  2. ini_set('session.save.path', 'tmp/sesje');
  3. require_once('theme/theme.php');
  4. require_once('naglowek.php');
  5. require_once('lewypanel.php');
  6. require_once('config.php');
  7. //istrukcje galerii
  8. if (isset( $_SESSION['zalogowany']))
  9. {
  10. $maxsize=204800;
  11. $tytul=$_POST["tytul"];
  12. $opis=$_POST["opis"];
  13. $akcja=$_POST["akcja"];
  14.  
  15. function formularz()
  16. {
  17. echo'<form action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
  18. <input type="hidden" name="plik" value="dodaj">
  19. <table width="100%" border="0" cellspacing="0">
  20. <tr valign="middle"> 
  21. <td width="40%"><b>Opis: </b></td>
  22. <td width="60%"><input type="text" name="opis" size="40"></td>
  23. </tr>
  24. <td width="40%"><b>Wybierz plik: </b></td>
  25. <td width="60%"><input type="file" name="zdjecie″ size"60"></td>
  26. </tr>
  27. <tr valign="middle" > 
  28. <td width="40%">
  29. <input type="submit" value="Wyślij" /></td>
  30. <td width="60"><b>Pogrubione pola są obowiązkowe!<input type="hidden" name="akcja" value="dodaj"></b></td>
  31. </tr>
  32. </table>
  33. </form>';
  34. }
  35. if(is_uploaded_file($_FILES['zdjecie']['tmp_name'])){
  36. if($_FILES['zdjecie']['size'] <= $maxsize){
  37. if(move_uploaded_file($_FILES['zdjecie']['tmp_name'], "galeria/zdjecia/".$_FILES['zdjecie']['name'])){
  38. // ustalanie unikalnej nazwy pliku
  39. $sciezka = pathinfo($_FILES['zdjecie']['name']);
  40. $nazwa = date("Y-m-d-His", time()).".".$sciezka['extension'];
  41. // zmiana nazwy pliku
  42. if(rename("galeria/zdjecia/".$_FILES['zdjecie']['name'], "galerie/".$nazwa)){
  43. // kopiowanie pliku do katalogu z miniaturami
  44. if(copy("galeria/zdjecia/".$nazwa, "galerie/thumbs/".$nazwa)){
  45. // dostosowanie zdjęcia do optymalnego rozmiaru ( max 600 x 600 )
  46. $wymiar = getimagesize("galeria/zdjecia/".$nazwa); // wymiary oryginalnego obrazka
  47. if($wymiar[0] > $wymiar[1]){ $wys_nor = round((600*$wymiar[1]/$wymiar[0]), 0); $szer_nor = 600; }
  48. if($wymiar[0] < $wymiar[1]){ $szer_nor = round((600*$wymiar[0]/$wymiar[1]), 0); $wys_nor = 600; }
  49. if($wymiar[0] == $wymiar[1]){ $wys_nor = 600; $szer_nor = 600; }
  50. $normal = imagecreatetruecolor($szer_nor, $wys_nor);
  51. $sourcen = imagecreatefromjpeg("galeria/zdjecia/".$nazwa);
  52. imagecopyresized($normal, $sourcen, 0, 0, 0, 0, $szer_nor, $wys_nor, $wymiar[0], $wymiar[1]);
  53. // dostosowywanie miniatury zdjęcia ( max 100 x 100 )
  54. if($wymiar[0] > $wymiar[1]){ $wys_mini = round((100*$wymiar[1]/$wymiar[0]), 0); $szer_mini = 100; }
  55. if($wymiar[0] < $wymiar[1]){ $szer_mini = round((100*$wymiar[0]/$wymiar[1]), 0); $wys_mini = 100; }
  56. if($wymiar[0] == $wymiar[1]){ $wys_mini = 100; $szer_mini = 100; }
  57. $mini = imagecreatetruecolor($szer_mini, $wys_mini);
  58. $source = imagecreatefromjpeg("galeria/zdjecia/".$nazwa);
  59. imagecopyresized($mini, $source, 0, 0, 0, 0, $szer_mini, $wys_mini, $wymiar[0], $wymiar[1]);
  60. // tworzenie zdjęcia i miniatury
  61. if(imagejpeg($normal, "galeria/zdjecia/".$nazwa, 100) && imagejpeg($mini, "galeria/thumbs/".$nazwa, 100)){
  62. if(mysql_query("INSERT INTO galeria VALUES (null, '".$nazwa."', '".$_POST['opis']."')")){
  63.  chmod("galeria/zdjecia/".$nazwa, 0755);
  64.  chmod("galeria/thumbs/".$nazwa, 0755);
  65. echo('Dane zdjęcia dodano do bazy danych');
  66. }else { echo('Błąd zapisywania zdjęcia w bazie'); }
  67. echo('Miniatura i zdjęcie zoptymalizowane');
  68. } else { echo('Błąd podczas optymalizacji zdjęć'); }
  69. echo('Zkopiowano miniaturę');
  70. } else { echo('Błąd kopiowania miniatury'); }
  71. echo('Nazwa pliku: '.$nazwa); 
  72. } else { echo('Błąd zmiany nazwy'); }
  73. echo('Zdjęcie przeniesione');
  74. } else { echo('Błąd "move_uploaded_file"'); }
  75. echo('Dodaj kolejne zdjęcie');
  76. } else { echo('Plik przekracza dozwolony maksymalny rozmiar'); }
  77.  
  78. }
  79.  
  80. else{formularz(); }
  81. }
  82. require_once('stopka.php');
  83. ?>
kosmowariat
kod Ci ucięło
pl65
Przy edycji mi ucieło kod już to poprawiłem. Pisze swoją pierwszą strone w php smile.gif , więc pytam się o takie z pozoru banalne rzeczy tongue.gif
potreb
Fajny skrypt, tylko powiedz jak chcesz przez formularz przekazać dalszej części że plik został wysłany?
pl65
Myslałem że jak sprawdzi
  1. <?php
  2. if (is_uploaded_file($_FILES['zdjecie']['tmp_name'])
  3. ?>

i dalej jeśli przesłałem plik będzie robił z tego dwa obrazy. I właśnie robi tak że przy sprawdzaniu tego warunku uznaje że nie wysłałem pliku. Tutaj właśnie jest kluczowy element w którym nie wiem jak zrobić żeby sprawdzał czy plik przesłano i żeby to działało ok.
nowotny
Nie zdefiniowałeś metody przesłania formularza oraz wielkości dozwolonego pliku:
  1. <?php
  2. echo'<form action="'.$_SERVER['PHP_SELF']." enctype="multipart/form-data" method="POST">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
  4. ?>
pl65
Jak zmieniłem to co napisałeś to nie wysyła mi formularz danych (właśnie dlatego wcześniej usunąłem method="POST". Co mam zrobić żeby to zadziałało prawidłowo...
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.