Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload plików na serwer
Forum PHP.pl > Forum > Przedszkole
camelx
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ć questionmark.gif Nigdy nie robiłemjeszcze upload'u więc mile widziane byłu by też przykłady smile.gif.

Z góry dzięki. Pozdrawiam.
crash
No i w czym problem? Pokaż swój kod, a jak chcesz całego gotowca to zgłoś się do działu Praca Oferowana..
camelx
Problem? Problem jest taki, że chcę zrobic upload ale nie wiem jak... Powyżej napisałem jakie funckje chciałbym żeby ten upload posiadał i licze na to, ze ktoś mi wyjaśni jak to zrobić...
Może to co napisałem powyżej to trochę za duzo wiec poszę tylko o opis jak zrobić cos takiego, ze podczas uploadu opis pliku bedzie zapisywany w bazie. W jaki sposób można to zrobić?

A Praca Oferowana odpada. Nie chcę gotowego skryptu, sam go napiszę ale nie wiem od czego zacząć i liczyłem na to, ze mi ktoś pomoże...
NuLL
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.
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.