Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie plików do folderu i danych do bazy danych
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Witam. Mam taki oto problem. Napisałem skrypt przesyłania danych [ten akurat dotyczy zdjęć] do folderu wraz z danymi do bazy danych. Problem leży w tym, że skrypt nie dodaje danych do bazy danych, choć przesyła plik nie sprawdzając go do folderu. A chcę też sprawdzić w nim czy plik to [w tym konkretnym przypadku] zdjęcie i czy ma wszystkie parametry wielkości w porządku, np. czy nie ma za dużego rozmiaru. Niestety nic mi z tym nie wychodzi, a baza nie wykazuje jakby był błąd w przesyłaniu danych do bazy. Gdzie w takim razie leży błąd? Proszę o pomoc. Pozdrawiam.

  1. $zdjecie = $_POST['zdjecie'];
  2. $plik_tmp = $_FILES['plik']['tmp_name'];
  3. $plik_nazwa = $_FILES['plik']['name'];
  4. $plik_rozmiar = $_FILES['plik']['size'];
  5. $sp = explode('.',$plik_nazwa);
  6. $max_file_size = 102400;
  7.  
  8. if(is_uploaded_file($plik_tmp))
  9. {
  10. if($sp[1] == 'gif' or $sp[1] == 'jpg' or $sp[1] == 'PNG' or $sp[1] == 'png')
  11. {
  12. if(move_uploaded_file($plik_tmp, 'galeria_uzytk/$plik_nazwa'))
  13. {
  14. if(isset($_POST['submit']))
  15. {
  16. ////W razie błędów z wysłaniem
  17. if(empty($tytul))
  18. {
  19. echo '<div class="niedodanie_komentarza">
  20. Zdjęcie nie zostało dodane. Jedno z pól jest puste! Spróbuj jeszcze raz.
  21. </div>';
  22. }
  23.  
  24. else if((strlen($_POST['tytul']) < 2) || (strlen($_POST['tytul']) > 255))
  25. {
  26. echo '<div class="niedodanie_komentarza">
  27. Niewłaściwa długość tytułu.
  28. </div>';
  29. }
  30. else
  31. {
  32. $sql = "INSERT INTO zdjecia (tytul)
  33. VALUES ('$tytul');";
  34. $result = mysql_query($sql) or die( mysql_error());
  35. if($result)
  36. {
  37. echo 'Udało się przesłać plik graficzny';
  38. }
  39. else
  40. {
  41. echo 'Nie udało się przesłać pliku i dodać danych do bazy danych';
  42. }
  43. }
  44. }
  45. else
  46. {
  47. echo 'Nie udało się przesłać pliku';
  48. }
  49. }
  50. else
  51. {
  52. echo 'Nie udało się przesłać pliku';
  53. }
  54. }
  55. else
  56. {
  57. echo 'Niepoprawnie przesłany plik lub zbyt duży rozmiar pliku';
  58. }
  59. }
  60.  
  61.  
  62. ///////////////////////////////////!!!!!------------Formularz przesyłania zdjęcia--------------!!!!!!////////////////////
  63. echo '<form enctype="multipart/form-data" action="index.php?id=multimedia_dodaj_zdjecie" method="POST">
  64. <div class="log_form">
  65. <input name="zdjecie" type="file" />
  66. </div>
  67.  
  68. <div class="log_form">
  69. Podaj tytuł:
  70. <input type="text" name="tytul" />
  71. </div>
  72.  
  73. <hr />
  74. <div class="formularz_komentarza">
  75. <input type="submit" name="submit" />
  76. <input type="reset" name="reset" value="Wyczyść"/>
  77. </div>
  78. </form>';
andrzejlechniak
Nie o to mi chodziło. Chodziło mi o dodanie zdjęcia do folderu a ni do bazy danych przy jednoczesnym dodaniu [innych] danych [np. opisu pliku] do bazy danych MySQL.
poli25
Obejrzyj jeszcze to i zrobisz to upload file to folder

p.s.
troche przerobilem Twoj plik i mizadziałał

<?php


echo $tytul = $_POST['tytul'];

$plik_tmp = $_FILES['zdjecie']['tmp_name'];

$plik_nazwa = $_FILES['zdjecie']['name'];

$plik_rozmiar = $_FILES['zdjecie']['size'];

$sp = explode('.',$plik_nazwa);

$max_file_size = 102400;



if(is_uploaded_file($plik_tmp))

{

if($sp[1] == 'gif' or $sp[1] == 'jpg' or $sp[1] == 'PNG' or $sp[1] == 'png')

{

if(move_uploaded_file($plik_tmp, 'galeria_uzytk/'."$plik_nazwa"))

{

if(isset($_POST['submit']))

{

////W razie błędów z wysłaniem

if(empty($tytul))

{

echo '<div class="niedodanie_komentarza">

Zdjęcie nie zostało dodane. Jedno z pól jest puste! Spróbuj jeszcze raz.

</div>';

}



else if((strlen($_POST['tytul']) < 2) || (strlen($_POST['tytul']) > 255))

{

echo '<div class="niedodanie_komentarza">

Niewłaściwa długość tytułu.

</div>';

}

else

{
$connect=mysql_connect('localhost','root','root');
$db=mysql_select_db('twoja_baza');
$sql = "INSERT INTO zdjecia (tytul)

VALUES ('$tytul');";

$result = mysql_query($sql) or die( mysql_error());

if($result)

{

echo 'Udało się przesłać plik graficzny';

}

else

{

echo 'Nie udało się przesłać pliku i dodać danych do bazy danych';

}

}

}

else

{

echo 'Nie udało się przesłać pliku';

}

}

else

{

echo 'Nie udało się przesłać pliku';

}

}

else

{

echo 'Niepoprawnie przesłany plik lub zbyt duży rozmiar pliku';

}

}
?>
andrzejlechniak
Dzięki, działa snitch.gif

Mam tylko pytanie czy z plikami innych typów, np. .doc, .pdf sprawa ma się podobnie czyli, że trzeba podmienić $sp[1]=='doc' czy coś jeszcze zmienić w kodzie $_FILES[]?
poli25
ciesze sie wink.gif pzdr.
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.