Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Upload plików na serwer, ...z zapisem do MySQL'a !
camelx
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Czy mógłby mi ktoś wytłumaczyć jak najlepiej zrobić upload plików przez formularz mniej więcej z takimi funkcjami:

- formularz z polami: "Plik (Przeglądaj...)" oraz "Opis" (zapisywany w bazie)
- podczas uploadu zmiana nazwy pliku na jakąś losową np. f_011.doc, f_012.doc, itd... (upload do katalogu 'files')
- opis pliku zapisany w bazie danych (baza miała by np. pola: id, opis, nazwa, czyli przykładowo: id=2, opis='Upload plików za pomocą php', nazwa=f_002)
- możliwość kasowania plików jednocześnie z bazy i z katalogu 'files'
- mozliwość wysyłania wybranych rodzajów plików, np. tylko *.doc, *.jpg i *.txt.
- (ewentualnie) wysyłanie kilku plików jednocześnie

Chcę osiągnąć mniej więcej taki efekt, że tekst (odczytany z bazy): "Upload plików za pomocą php" bedzie linkiem do pliku 'files/f_002.doc'.

Czy możecie mi napisać jak mam się do tego zabrać, na jakiej zasadzie to ma działać (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Nigdy nie robiłemjeszcze upload'u więc mile widziane byłu by też przykłady (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Z góry dzięki. Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Tak wyglada kod akceptuajcy pliki od strony php.
  1. <?php
  2. $userfile = $_FILES['userfile']['tmp_name'];
  3. $userfile_name = $_FILES['userfile']['name'];
  4. $userfile_size = $_FILES['userfile']['size'];
  5. $userfile_type = $_FILES['userfile']['type'];
  6. $userfile_error = $_FILES['userfile']['error'];
  7.  
  8. $error='';
  9.  
  10. if ($userfile_error > 0){
  11. switch ($userfile_error){
  12. case 1: $error='Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  13. case 2: $error='Rozmiar pliku przekroczył wartość max_file_size'; break;
  14. case 3: $error='Plik wysłany tylko częściowo'; break;
  15. case 4: $error'Nie wysłano żadnego pliku'; break;
  16. }
  17. }
  18.  
  19. if(substr($userfile_name,-3,3)!='jpg'){
  20. $error='Plik nie jest plikiem .jpg';
  21. }
  22.  
  23. if(strlen($error)>5){
  24. die(); //byl blad
  25. }
  26.  
  27.  
  28.  
  29. if (is_uploaded_file($userfile)){
  30.  if (!move_uploaded_file($userfile, '../notesimages/'.$userfile_name)){
  31. echo 'Problem: Plik nie może być skopiowany do katalogu';
  32.  }
  33. }else{
  34. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: '.$userfile_name;
  35. }
  36. ?>

Dalej sam kombinuj.
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 08:24