Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Rozwinięcie upload'u
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  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.

Ten post edytował potreb 3.12.2009, 18:15:19
Go to the top of the page
+Quote Post
adrianozo
post
Post #3





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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ę (IMG:style_emoticons/default/smile.gif)
Tylko trochę trzeba było poczekać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 02:13