Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Upload plików - problem
konradinho
post 20.03.2010, 12:26:30
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 4.12.2009

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


Witam.

Mam mały problem. Upload plików działa bardzo dobrze, lecz gdy użytkownik dodaje opis do zdjęcia(klucz) to zapisuje go do bazy w formie cyfrowej(zamienia ciąg znaków na cyfry). W bazie to pole ustawione jest jako text więc wszystko powinno być ok. Czy ktoś wie może jak to rozwiązać? Wydaje mi się, że to wszystko jest przez:
  1. enctype="multipart/form-data"
ale za bardzo nie wiem jak to rozwiązać.

  1. <br /><br /><fieldset style="width: 300px; text-align: center;">
  2. <form method="post" enctype="multipart/form-data" id="upload" action="upload.php?action=upload">
  3. <p>Maksymalny rozmiar pliku to 500kB. Akceptowane rozszerzenia to: *.jpg, *.gif oraz *.png.
  4. </p>
  5. <p>&nbsp; </p>
  6. <table>
  7. <tr><td width="115">Wybierz plik:</td><td width="349" style="text-align:left"><input type="file" name="plik" /></td></tr>
  8. <tr><td height="88">Opis zdjecia:</td><td style="text-align:left"><textarea name="klucz" cols="50" rows="10"></textarea></td></tr>
  9. <tr><td>Wybierz sport:</td><td style="text-align:left"><p>
  10. <select name="kategoria">
  11. <option value="0">Wybierz</option>
  12. <?php
  13. $kategorie = new Kategorie;
  14. foreach($kategorie->pokazKategorie() as $numer => $nazwa)
  15. {
  16. if($nazwa!="")
  17. echo '<option value="'.$numer.'">'.$nazwa.'</option>';
  18. }
  19. unset($kategorie);
  20. ?>
  21. </select>
  22. </p>
  23. </td></tr>
  24. </table>
  25. <td><input type="submit" id="send" value="Wrzuc zdjecie" /></td>
  26. </form></fieldset>
  27. <?php
  28. //wrzucanie sygnatury
  29. if($_GET['action']=='upload')
  30. {
  31. $plik = new Pliki;
  32. if($plik->upload($_POST['kategoria'],$_SESSION['u_id'],$_FILES['plik']['tmp_name'],$_FILES['plik']['name'],$_FILES['plik']['size'],$_POST['klucz']))
  33. echo('<center><b style="text-decoration:underline">Zdjecie zostalo wrzocone na serwer</b></center>');
  34. else
  35. echo('<center><b style="text-decoration:underline">Rozmiar pliku przekracza 500kB lub nie wybrano Kategorii!</b></center>');
  36. }
  37.  
  38.  
  39.  
  40. ?>
Go to the top of the page
+Quote Post
MateuszS
post 20.03.2010, 12:46:28
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Pokaż klasę Pliki (kod)


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
konradinho
post 20.03.2010, 13:18:19
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 4.12.2009

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


Klasa ogólnie ma dużą zawartość ale tylko ten kawałek tyczy się uploadu plików:

  1. //upload pliku z formularza
  2. function upload($kategoria,$uzytkownik,$plik,$nazwaPliku,$klucz)
  3. {
  4. $rozmiar=$_FILES['plik']['size'];
  5. $maxrozmiar=0.5*1024*1024;
  6. if($kategoria!='0' AND $rozmiar<$maxrozmiar)
  7. {
  8. $kod = str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
  9. $rozszerzenie = substr($nazwaPliku,-4,4);
  10. if($rozszerzenie=='.jpg' || $rozszerzenie=='.gif' || $rozszerzenie=='.png')
  11. {
  12. $nazwaPliku = $kod.$rozszerzenie;
  13. if(move_uploaded_file($plik,'images/tmp/'.$nazwaPliku))
  14. {
  15. $uzytkownik=$_SESSION['u_id'];
  16. //tworzymy miniature
  17. $this->tworzMiniaturke($nazwaPliku);
  18. $this->zmniejszFoto($nazwaPliku);
  19. $this->usuntmp($nazwaPliku);
  20. //dodajemy informacje o pliku do bazy danych
  21. $zapytanie = "INSERT INTO fotos(klucz,nazwaPliku,user,kategoria,dataDodania) VALUES('$klucz','$nazwaPliku',$uzytkownik,$kategoria,NOW())";
  22. $zap2 = "UPDATE users SET u_iloscFoto=u_iloscFoto+1 WHERE u_id=$uzytkownik";
  23. if((mysql_query($zapytanie) && mysql_query($zap2)) or die(mysql_error()))
  24. return true;
  25. else
  26. return false;
  27. }
  28. else
  29. return false;
  30. }
  31. else
  32. return false;
  33. }
  34. else
  35. return false;
  36.  
  37. }
Go to the top of the page
+Quote Post
MateuszS
post 20.03.2010, 13:37:53
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Rozumiem że chcesz żeby klucz nie był ciągiem cyfr tylko normalnym tekstem tak? W tej metodzie którą pokazałeś ze zmienną klucz się nic nie dzieje ;P Pokaż metody w których cokolwiek dzieje się ze zmienną $klucz


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
konradinho
post 23.03.2010, 14:46:26
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 4.12.2009

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


O to chodzi, że z tą zmienną nic się nie dzieje w innych plikach. Po prostu odbieram ją z formularza i dodaje rekord do bazy smile.gif

Nie ma nikt żadnego pomysłu smile.gif?

@edit

Problem rozwiązany, pomógł mi kumpel. A mianowicie:

  1. if($plik->upload($_POST['kategoria'],$_SESSION['u_id'],$_FILES['plik']['tmp_name'],$_FILES['plik']['name'],$_FILES['plik']['size'],$_POST['klucz']))


  1. function upload($kategoria,$uzytkownik,$plik,$nazwaPliku,$klucz)



Czyli krótko mówiąc do zmiennej $klucz przypisywałem posta zawierającego rozmiar pliku winksmiley.jpg I tutaj cały szkopuł. Zmieniłem miejscami i jest ok winksmiley.jpg


Ten post edytował konradinho 23.03.2010, 14:53:44
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 11:47