Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Rozwinięcie upload'u
Forum PHP.pl > Forum > Przedszkole
adrianozo
Skrypt wygląda następująco.

dodajartykul.php

  1. <?php
  2. include('include/db.php');
  3. $info = addslashes($_POST['info']);
  4. $kategoria = addslashes($_POST['kategoria']);
  5. $tytul = addslashes($_POST['tytul']);
  6. $cena = addslashes($_POST['cena']);
  7. $plik_nazwa = addslashes($_POST['plik']);
  8. $zdjecie = addslashes($_POST['zdjecie']);
  9. $data = date('Y-m-d-G:i:s');
  10. include('include/dane.php');
  11. if($_POST['info']==NULL)
  12. {
  13. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  14. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  15. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  16. <br />Tre&#x15B;&#x107;<br />
  17. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  18. <br />Kategoria<br />
  19. <input type="text" name="kategoria" value="Kategoria" size="26" />
  20. <br />Cena<br />
  21. <input type="text" name="cena" value="Cena" size="26" />
  22. <br />Miniaturka<br />
  23. <input type="file" name="zdjecie" />
  24. <br />Plik<br />
  25. <input type="file" name="plik" />
  26. <br />
  27. <input type="submit" value="Dodaj" />
  28. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  29. </form><br />
  30. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  31. }
  32. else
  33. {
  34. $plik_tmp = $_FILES['plik']['tmp_name'];
  35. $plik_nazwa = $_FILES['plik']['name'];
  36. $plik_rozmiar = $_FILES['plik']['size'];
  37. $plik_type = $_FILES['plik']['type'];
  38. $ext = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  39. if (($ext == 'zip') || ($ext == 'rar') || ($ext == 'pdf'))
  40. {
  41. if(is_uploaded_file($plik_tmp))
  42. {
  43. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  44. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  45. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!";
  46. addslashes($zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `cena`, `plik`, `zdjecie`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$cena."', 'upload/".$plik_nazwa."', '".$zdjecie."', '".$data."')");
  47. $idzapytania = mysql_query($zapytanie);
  48. }
  49. }
  50. else
  51. {
  52. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  53. }
  54. if($idzapytania)
  55. {
  56. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  57. }
  58. }
  59. mysql_close($connect);
  60. ?>


Teraz pytanie. Czy da się zrobić, aby w tym samym pliku po wybraniu zdjęcia dodało się do innego katalogu? Jeśli tak to jak, żeby się nie gryzły.
Po prostu mam w formularzu plik i zdjęcie i teraz chcę na tej samej zasadzie.
Myślę, że jasno się wysłowiłem smile.gif
potreb
  1. $ext = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );


Zamień na:
  1. $path_parts = pathinfo($plik_nazwa);
  2. $ext = $path_parts['extension'];
  3. echo $ext;


Samą nazwę pliku także możesz wyciągnąć: $path_parts['filename']
Możesz zrobić sobie rozwijaną listę pobierającą foldery np z katalogu upload
Kod
upload
--files
--news
-images
--movies


Zrobisz to za pomocą dir while opendir itp poszukaj w manualu. Później przekażesz dane z selecta do kodu do jakiego folderu ładować pliki.
Dodatkowo możesz zrobić ifa jeżeli nie wybrano folderu ładuje zdjęcie do domyślnego np files.
Proponuje jeszcze dodawać unikalny prefix do nazwy pliku, żeby nie wystąpiło dublowanie nazw.
adrianozo
Rozwinąłem ten plik o dodawanie zdjęcia i jest problem.... Rekord normalnie dodaje, plik normalnie dodaje, ale zdjęcia nie dodaje wcale.
Może Wam uda się coś znaleźć co powoduje ten problem smile.gif

dodajartykul.php

  1. <?php
  2. include('include/db.php');
  3. $info = addslashes($_POST['info']);
  4. $kategoria = addslashes($_POST['kategoria']);
  5. $tytul = addslashes($_POST['tytul']);
  6. $cena = addslashes($_POST['cena']);
  7. $plik_nazwa = addslashes($_POST['plik']);
  8. $zdjecie_nazwa = addslashes($_POST['zdjecie']);
  9. $data = date('Y-m-d-G:i:s');
  10. include('include/dane.php');
  11. if($_POST['info']==NULL)
  12. {
  13. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  14. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  15. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  16. <br />Tre&#x15B;&#x107;<br />
  17. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  18. <br />Kategoria<br />
  19. <input type="text" name="kategoria" value="Kategoria" size="26" />
  20. <br />Cena<br />
  21. <input type="text" name="cena" value="Cena" size="26" />
  22. <br />Miniaturka<br />
  23. <input type="file" name="zdjecie" />
  24. <br />Plik<br />
  25. <input type="file" name="plik" />
  26. <br />
  27. <input type="submit" value="Dodaj" />
  28. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  29. </form><br />
  30. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  31. }
  32. else
  33. {
  34. $plik_tmp = $_FILES['plik']['tmp_name'];
  35. $plik_nazwa = $_FILES['plik']['name'];
  36. $plik_rozmiar = $_FILES['plik']['size'];
  37. $plik_type = $_FILES['plik']['type'];
  38. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  39. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  40. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  41. $zdjecie_type = $_FILES['zdjecie']['type'];
  42. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  43. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  44. if(is_uploaded_file($plik_tmp))
  45. {
  46. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  47. {
  48. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  49. if(is_uploaded_file($zdjecie_tmp))
  50. {
  51. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  52. {
  53. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  54. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  55. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  56. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  57. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  58. addslashes($zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `cena`, `plik`, `zdjecie`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', '".$data."')");
  59. $idzapytania = mysql_query($zapytanie);
  60. }
  61. }
  62. }
  63. }
  64. else
  65. {
  66. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  67. }
  68. if($idzapytania)
  69. {
  70. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  71. }
  72. }
  73. mysql_close($connect);
  74. ?>


Ok dodało się smile.gif
Tylko trochę trzeba było poczekać smile.gif
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.