Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql & php] Upload obrazka do newsów
Forum PHP.pl > Forum > Bazy danych > MySQL
Depor
Mam pewien skrypt uploadu plików na serwer, traz jednak chciałbym się dowiedzieć jak zrobić tak:
podczas dodawania newsa zapisało z formularza obrazek i do tabeli `tresc_komentarza` dodało link do niego?
SongoQ
Ja bym ten problem rozwiazal tak:
- dodajesz rekord do bazy
- pobierasz id dodanego rekordu
- zapiszujesz w katalogu obrazek i nadajesz mu np nazwe taka jak identyfikator rekordu, lub generujesz jakas nazwe a w rekordzie zapisujesz nazwe obrazka.

Najwazniejsze jest powiazanie obrazka z rekordem.
Depor
Trudne to :/
Najpierw przerobie żeby robił
for $i++

Potem
INSERT INTO news $_GET['$i']

Ale to będzie powiązane? :/
Zapisze $i potem pobierze $i a potem obrazek wyśwetli sie przez <img src=img/".$i.">

Jest możliwość że sie spieprzy jak będe usuwał newsa? Albo obrazek? Bo mysql nie zastąpi rekordu np. o ID8 jak sksuje i dodam to już nie bedzie takiego ID ale nie wiem jak to będzie z obrazkiem :/
mhs
Cytat(Depor @ 2005-03-04 12:55:00)
Trudne to :/
Najpierw przerobie żeby robił
for $i++

Potem
INSERT INTO news $_GET['$i']

Ale to będzie powiązane? :/
Zapisze $i potem pobierze $i a potem obrazek wyśwetli sie przez <img src=img/".$i.">

Jest możliwość że sie spieprzy jak będe usuwał newsa? Albo obrazek? Bo mysql nie zastąpi rekordu np. o ID8 jak sksuje i dodam to już nie bedzie takiego ID ale nie wiem jak to będzie z obrazkiem :/

SongoQ podal Ci prosto i zrozumiale sposob w jaki masz wykonac zadanie. Natomiast Ciebie na dobra sprawe to nie rozumiem - jedynie co to moge sie domyslac co chcesz zrobic.
SongoQ
Cytat
Jest możliwość że sie spieprzy jak będe usuwał newsa? Albo obrazek?


Usuwasz rekord o jakims tam id, nastepnie usuwasz obrazek i tu taka moja uwaga warto obsluzyc jesli wystapi blad usuwania fizycznego pliku, zrzucac sobie gdzies do logow ze taki obrazek mial byc usuniety a sie z "x" przyczyny nie udalo sie go usunac. Moze to jest taki maly szczegol ale pozniej w razie "w" wiesz jak sie zachowac.

Najwazniesze to nie usuwac recznie rekordu lub obrazka, bo jesli mamy tego bardzo duzo to moga wystapic male bledy.

Dla bezpieczenstwa dodawnie rekordu w transakcji z sprawdzeniem czy prawidlowo sie obrazek skopiowal a nastepnie commit.

?>
Depor
  1. <?php 
  2. $osoba = $userdata['username']; 
  3. $user = $userdata['user_id']; 
  4. $obrazek= 'forum/images/avatars/'.$userdata['user_avatar']; 
  5. if (($userdata['user_avatar'] != '') and (file_exists($obrazek))) { 
  6. $obrazek = '<img src=\"'.$obrazek.'\">'; 
  7. } else { 
  8. $obrazek = '<img src=\"forum/templates/Deportivo/images/folder_big.gif\">'; 
  9. } 
  10. if ($tytul && $tresckd && $osoba) { 
  11.  
  12. $query = &#092;"INSERT INTO news (tytul, tresckd, tresc, osoba, data, kolor, user, obrazek) 
  13. VALUES ('$tytul', '$tresckd', '$tresc', '$osoba', now(), '$kolor', '$user', '$obrazek')&#092;"; 
  14. $wynik = mysql_query ($query); 
  15. echo &#092;"<span class=menu><b>Dodano!</b></span>\"; 
  16. } else { 
  17.  
  18. $plik = false; 
  19.  
  20.  if ((IsSet($_POST['dodaj'])) && ($_FILES['plik']['size']>0)) { 
  21.  
  22. if ($_FILES['plik']['size'] <= 80 * 1024) { //plik musi byc mniejszy niz 80 kb ! 
  23.  
  24.  list($width,$height) = @getimagesize($_FILES['plik']['tmp_name']); 
  25.  
  26.  if (($width<=120) && ($height<=120)) { //rozmiar nie moze przekraczac 100 X 100 px ! 
  27.  
  28. $directory_image = 'image'; //katalog z grafika 
  29.  
  30. if (is_dir($directory_image)) { 
  31.  
  32. if (($_FILES['plik']['type']== 'image/jpeg') || ($_FILES['plik']['type']== 'image/gif')) { 
  33.  //tu zrobiłem to co mi dlaiście 
  34.  $plik = $directory_image.'/'.$_GET[nr]; 
  35.  
  36.  if (!move_uploaded_file($_FILES['plik']['tmp_name'],$plik)) $plik=false; 
  37.  
  38. } else echo &#092;"Błąd uploadowanego pliku!\"; 
  39.  
  40. } else echo &#092;"Brak katalogu dla grafiki!\"; 
  41.  
  42.  } else echo &#092;"Nieprawidłowe wymiary pliku!\"; 
  43.  
  44. } else echo &#092;"Zbyt duza waga pliku!\"; 
  45.  
  46.  } 
  47. echo &#092;"<span class=menu><b>Dodaj newsa:</b></span><br><br>\"; 
  48. ?> 
  49. <FORM action=\"<? echo $_SERVER['PHP_SELF']; ?>\" method=POST name=forma enctype=\"multipart/form-data\"
  50. <? 
  51. echo \"<center> 
  52. <table class=menu border=0 cellpadding=0 cellspacing=0> 
  53. <tr> 
  54. <td> 
  55. <p align=right><b>Osoba:</b>&nbsp;&nbsp;</p> 
  56. </td> 
  57. <td><span class=i><b>&#092;".$osoba.\"</b></span></td> 
  58. </tr> 
  59. <tr valign=top> 
  60. <td> 
  61. <p align=right><b>Tytuł:</b>&nbsp;&nbsp;</p> 
  62. </td> 
  63. <td class=kom> 
  64. <INPUT type=text width=300px NAME=tytul VALUE=$tytul></TEXTAREA></td> 
  65. </tr> 
  66. <tr valign=top> 
  67. <td><p align=right><b>Wstęp:</b>&nbsp;&nbsp;</p> 
  68. </td> 
  69. <td class=kom><TEXTAREA width=300px NAME=tresckd rows=10 cols=35>$tresckd</TEXTAREA> 
  70. </td> 
  71. </tr> 
  72. <tr valign=top> 
  73. <td><p align=right><b>Treść:</b>&nbsp;&nbsp;</p></td> 
  74. <td class=kom><TEXTAREA width=300px NAME=tresc rows=10 cols=35>$tresc</TEXTAREA></td> 
  75. </tr> 
  76. <tr valign=top> 
  77. <td> 
  78. <INPUT type=file name=plik><br> 
  79. </td> 
  80. <td> 
  81. <p align=center><input type='image' src='img/b_dodaj.gif' value='Dodaj'> 
  82. </td> 
  83. </tr> 
  84. </table> 
  85. </center> 
  86. </FORM>&#092;"; 
  87.  
  88. } 
  89. ?>


Dlaczego nie działa? Pwoinno dodać obrazek i zmienić jego nazwe na nr newsa :/ questionmark.gif?
SongoQ
  1. <?php
  2. <input type='image' src='img/b_dodaj.gif' value='Dodaj'>
  3. ?>


Dodaj name="plik" powinno pomuc.
Depor
Nadal nie działa :/
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-2024 Invision Power Services, Inc.