Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasy]Obsluga uploadu, po mojemu PHP5 only
NuLL
post 5.08.2006, 01:50:44
Post #1





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

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


Witam,

Postanowilem przestawic rozwiazanie pozwalajace na obiektowa obsluge uploadu plikow smile.gif Calosc nie jest specjalnie trudna do zrozumienia i wydaje mi sie iz moze czesci zgromadzonych tutaj osob pomoc zrozumiec choc po trosze dlaczego programowanie obiektowe (questionmark.gif)jest ladniejsze i lepsze niz proceduralne.

Pliki ze wzgledu na wielkosc wrzucilem na phpfi.com - oto linki oraz nazwy jakie ja mialem oraz jakie sa wykozystane w przykladzie smile.gifCalosc zipnieta -> http://null.avx.pl/files/upload.zip

I przyklad
  1. <?php
  2. //dolaczamy pliki
  3. require_once('class.uploadException.php');
  4. require_once('class.uploadedFile.php');
  5. require_once('class.uploadManager.php');
  6.  
  7. //jesli sa jakies pliki i jest plik o id plik_testowy
  8. if(uploadManager::hasFiles() && uploadManager::has('plik_testowy'))
  9. {
  10. try
  11. {
  12. //tworzymy obiekt pliku
  13. $testFile=uploadManager::get('plik_testowy');
  14.  
  15. if(!$testFile->isOk())
  16. {
  17. //jesli cos jest nie tak wyrzuc wyjatek z wiadomoscia
  18. throw new uploadException($testFile->getErrorAsString());
  19. }
  20.  
  21. //sprawdzanie rozszerzenia
  22. if(!$testFile->isValidExt('jpg','txt'))
  23. {
  24. throw new uploadException('Niepoprawne rozszerzenie pliku');
  25. }
  26.  
  27. //sprawdzanie wielkosci
  28. if(!$testFile->isValidSize('1000 KB'))
  29. {
  30. throw new uploadException('Plik jest za duzy');
  31. }
  32.  
  33. //przeniesc ze stara nazwa do katalogu /data
  34. if(!$testFile->moveWithOriginalName('data'))
  35. {
  36. throw new uploadException('Nie udalo sie przeniesc pliku.');
  37. }
  38.  
  39. //Udalo sie ;]
  40. echo 'Plik<b> '.$testFile->getOriginalName().'</b> pomyslnie zuploadowano<br>';
  41. //Nieprawda ze to ladniej wyglada questionmark.gif :-)
  42. }
  43. catch(uploadException $e)
  44. {
  45. //Lapiemy wyjatek i wypisujemy co nam powiedziano badz robimy co chcemy ;]
  46. echo $e->getMessage();
  47. }
  48. }
  49.  
  50. ?>
  51. <form method='POST' enctype='multipart/form-data'>
  52. Wybierz: <input type="file" name='plik_testowy'> 
  53. <input type='submit' values='Zuploaduj'>
  54. </form>


Wydaje mi sie ze komentarze sa wystarczajace - jak cos bedzie nie tak to pytac smile.gif


---
poprawilem linki do phpfi (tak trzeba: [ url=http://phpfi.com/137251]http://phpfi.com/137251[ /url]) i dodalem programowanie OBIEKTOWE

Ten post edytował dr_bonzo 5.08.2006, 09:19:53


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Ja_Szczur
post 5.08.2006, 09:09:59
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 4.12.2005
Skąd: Strzyżów

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


proste, ładne, czytelne: może podobna klasa do obsługi grafiki? ;]
no i może skończą się tematy typu "jak/czym zrobić upload w php!?"

---
aha, popraw linki w poście :]


--------------------
"No bo z fasolą to człowiek przynajmniej wie, na czym stoi..."
Pomniejsze bóstwa, Terry Pratchett

php :*
Go to the top of the page
+Quote Post
dr_bonzo
post 5.08.2006, 09:20:45
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <?php
  2. if(!$testFile->isOk())
  3. {
  4. //jesli cos jest nie tak wyrzuc wyjatek z wiadomoscia
  5. throw new uploadException($testFile->getErrorAsString());
  6. }
  7. ?>

To ma sprawdzac czy plik w ogole sie zuploadowal?
To nie lepiej przeniesc wyrzucanie wyjatku do

$testFile=uploadManager::get('plik_testowy');

?

Przydalo by sie jeszcze zwrocenie wszystkich plikow/nazw plikow.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
NuLL
post 5.08.2006, 12:55:02
Post #4





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

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


Cytat
proste, ładne, czytelne: może podobna klasa do obsługi grafiki? ;]no i może skończą się tematy typu "jak/czym zrobić upload w php!?"

Postaram sie to uzupelnic i zrobic z tego gotowe rozwiazanie Rkingsmiley.png

Cytat
To ma sprawdzac czy plik w ogole sie zuploadowal?To nie lepiej przeniesc wyrzucanie wyjatku do$testFile=uploadManager::get('plik_testowy');?Przydalo by sie jeszcze zwrocenie wszystkich plikow/nazw plikow.

Chodzi Ci o zwrocenie np. tablicy ze wszystkimi plikami ? smile.gif Bo tym w sumie nie pomyslalem - no i musze dodac obsluge uploadu tablicowego smile.gif

Ten post edytował NuLL 5.08.2006, 12:55:33


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
bim2
post 5.08.2006, 18:48:16
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Uau, nice tongue.gif ale nie moge tymczasowo działac na php 5. podoba mi się tongue.gif

PS. Czemu wczesnije nie wiedziałem o istnieniu func_get_args() ;( a gdybym wiedział miałbym ze 100 problemów mniej!


--------------------
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: 19.07.2025 - 06:18