Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload pliku i dodanie rekordu
Forum PHP.pl > Forum > PHP
Dawior
Witam mam takie pytanie jak zrobić żeby po uploadzie pliku został dodany rekord do bazy mysql. Ten rekord to by był link tego pliku co go zuploadowałem. Prosze o pomoc z góry dzięki
nospor
no ale czego dokladnie nie wiesz? nie umiesz dodac rekordu do bazy danych?
Indeo
Mówiąc ogólnie musisz podczas przechwytywania pliku zapisać do bazy informacje o tym gdzie go zapisujesz w systemie plików. Do ścieżki gdzie zapisujesz pliki dodajesz nazwę pliku zawartą w zmiennej $_FILES['nazwa_twojego_pola_file']['name']. "klikalny" link będzie chyba musiał być jeszcze przepuszczony przez funkcje urlencode() w razie gdyby w nazwie pliku były spacje i polskie znaki itp.
Dawior
aha dzięki a jak zrobić żeby po załadowaniu pliku zmieniła się nazwa pocżtkowa jakies losowe liczby albo coś żeby nie można było podminiac pliku?
Blame
Chodzi ci o to żeby nie wystąpiły dwa takie same pliki? Jeśli tak to generuj sobie nazwę z pomocą funkcji microtime.
Fifi209
Cytat(Blame @ 28.11.2009, 14:39:09 ) *
Chodzi ci o to żeby nie wystąpiły dwa takie same pliki? Jeśli tak to generuj sobie nazwę z pomocą funkcji microtime.


Zależy jak do tego podejść. Ja np. wolę md5($nazwa.time())
Blame
@/\
Ja robię podobnie, jednak podałem rzecz podstawową licząc na pomyślunek naszego zapytowywacza winksmiley.jpg
Dawior
Mam jeszcze jeden problem mam taki kod:

upload.php
  1. <?php
  2. include('config.php');
  3. $uploaddir = 'mp3/';
  4. $rozszerzenie = explode(".", $_FILES['plik']['name']);
  5. for($count=0;$count<=count($dozwolone)-1;$count++)if($rozszerzenie[1]==$dozwolone[$count])$ok=1;
  6. if($_FILES['plik']['size'] <= $max_size){
  7. if($ok == 1){
  8. if(move_uploaded_file($_FILES['plik']['tmp_name'], $uploaddir.'(HouseMusic.pl)'.$liczba.$_FILES['plik']['name'])){
  9. echo 'Plik Załadowano Pomyślnie<br>';
  10. echo 'Nazwa:&nbsp;&nbsp;';
  11. echo ''.'(HouseMusic.pl)'.$liczba.$_FILES['plik']['name'].'';
  12. }else{
  13. echo 'Błąd podczas wysyłania pliku.';
  14. }
  15. }else{
  16. echo 'Niedozwolone rozszerzenie (.'.$rozszerzenie[1].')<br>';
  17. echo 'Możesz Wysłać Pliki tylko w Formacie *';
  18. for($count=0;$count<=count($dozwolone)-1;$count++)
  19. echo $dozwolone[$count].'';
  20. }
  21. }else{
  22. echo 'Plik ma za duży rozmiar ('.$_FILES['plik']['size'].' bajtów)<br>';
  23. echo 'Dozwolony rozmiar: '.$max_size.' bajtów.';
  24. }
  25. include 'engine/conn.php';
  26. include 'engine/bbcode.php';
  27. $down = 'INSERT INTO `muzyka`(`nazwa`, `link`,`zewlink`) VALUES ("'.$_POST["nazwa"].'", "'.$_POST["link"].'", "'.BBCode($_POST["zewlink"]).'")';
  28. mysql_query($down);
  29.  
  30. ?>


Jak zrobić żeby (HouseMusic.pl)'.$liczba.$_FILES['plik']['name'] dodawało się jako rekord do bazy danych? bardzo proszę o pomoc z góry dzięki.
Blame
Nie dam ci gotowca ale mogę trochę naprowadzić winksmiley.jpg Tutaj:
  1. $uploaddir.'(HouseMusic.pl)'.$liczba.$_FILES['plik']['name']

masz przechowywany adres zaupoloadowanego pliku(możesz go przypisać do zmiennej w tedy będzie ci prościej, a tutaj:
  1. if(move_uploaded_file($_FILES['plik']['tmp_name'], $uploaddir.'(HouseMusic.pl)'.$liczba.$_FILES['plik']['name'])){

sprawdzasz czy plik się zapisał. Więc możesz w tym if'ie wstawić sobie adres do tabeli mysql.
PS. KLIK!
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.