![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Witam mam pytanie, mam kod na upload plików, ale problem polega na tym że wrzuca mi pliki ze wszystkimi rozszerzeniami. I moje pytanie jest takie, jak ograniczyć upload plików tylko do plików z rozszerzeniem gif, jpg
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przed wywołaniem funkcji move_uploaded_file() sprawdzasz nazwę pliku (bodajże $_FILES['plik']['name']). Jeżeli zależy ci na bezpieczniejszym sprawdzaniu (wiadomo - rozszerzenie zawsze można zmienić), wgraj sobię paczkę PECL-a FILEINFO i tym sprawdzaj.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Mam teraz taki kod:
Kod <?php $uploaddir='c:/'; if($_FILES['plik1']['error']== UPLOAD_ERR_OK){ $new_name=$uploaddir.$_FILES['plik1']['name']; $temp_name=$_FILES['plik1']['tmp_name']; if(move_uploaded_file($temp_name,$new_name)){ echo "plik ok.\n"; }else{ print "blad\n"; } } ?> I działa poprawnie, ale nie wiem nadal jak ograniczyć do danego rozszerzenia Ten post edytował ExPlOiT 2.11.2007, 13:40:27 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
heheheh. Masz chyba dobry dzień ;p Akurat walczyłem z filtrami ;p
1.
2,
Jak używać?
Pozdrawiam. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
umieściłem ten kod co mi napisałeś w pliku skrypt2.php i po wybraniu pliku przechodzi do pliku skrypt2.php i wyskakuje mi
Cytat Parse error: parse error in c:\usr\krasnal\www\cms\skrypt2.php on line 3 A ta linia to: Kod abstract class imageFilterIterator extends FilterIterator Hehe nieźle nie dość że dostałem gotowca to jeszcze niewiem jak go użyć. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Niemożliwe, zeby to to powodowało błąd (chyba, ze masz php4) sprawdź inne linijki.
Pozdrawiam. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Ok teraz działa, miałem w krasnalu na localhoscie ustawiony php4
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 8.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
a moze zamiast kombinowac to lepiej zrobic explode i zobaczyc czy ciag po kropce jest rowny
jpg gif png ect...... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Hmm łatwo powiedzieć gorzej to wszystko połączyć w jedno. Ale dzięki za wskazówke.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
czemu ja php znam nie zadobrze ale tak to powinno wygladac przed move_uploaded_file()
Ten post edytował marcio 2.11.2007, 23:04:57 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
O lol ja w php bawię się od prawie 3 lat a na to niewpadłem.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
a ja sie bawie nie caly rok (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) i jak latwe nie a nie kombinowac na klasach przy tych -> to mozna nerwicy dostac
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
To fakt, ale tak już jest najłatwiejszy sposób na wszystko znajduje się dopiero wtedy kiedy wykonamy coś w najtrudniejszym z możliwych. Prawda jest taka że nie wszystkie rzeczy potrzebowałem, i dlatego niektórych prostych rzeczy niewiem, a gdy już je potrzebuje to niewiem od czego zacząć (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Dobra koniec tego offtopa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Co do tych klass itp to masz racje, idzie szybko ześwirować
Ten post edytował ExPlOiT 2.11.2007, 23:05:48 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
sorki byla literowka teraz jest dobrze poprawilem
|
|
|
![]()
Post
#16
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
No panowie! Nie przsadzajcie. Akurat rozwiązanie, które podałem należy chyba do najlegantszych z możliwych i do tego zgodnych z OOP, z wykorzystaniem SPL... no kurde ; p
Zastępujemy to: (od ~marcia)
Tym.
Po co jakieś explode? Ciekawe, co byś zrobił ~marcio z plikiem myFile.class.php. albo z to.jest.nazwa.pliku.png Przyznam, że jakbym miał robić Waszymi sposobami, to by mnie chyba szlag trafił na miejscu :| Pozdrawiam. P.S Rozpoznawanie typu mime mozecie sobie zrobić też łatwo, ale to już zostawiam wyobraźni ewentualnego użytkownika tego kodu. ;p |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przyznam, że jakbym miał robić Waszymi sposobami, to by mnie chyba szlag trafił na miejscu :| to teraz już wiesz dlaczego z dnia na dzień co raz to bardziej mi się żyć odechciewa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Cytat Rozpoznawanie typu mime mozecie sobie zrobić też łatwo, ale to już zostawiam wyobraźni ewentualnego użytkownika tego kodu. ;p Heheh czyli mam kolejne zajęcie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) fakt Cysiaczek Twoje rozwiązanie działa na serwie z php5 a co z 4? |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Na 4 nie może działać i bardzo dobrze, że tak jest - tworząc jakiś nowy kod od podstaw nie bierze się wogóle pod uwagę tej wersji jezyka. Za kilka miesięcy php 6 ...
Pozdrawiam. 5 minut pracy:
Wartość tego rozwiązanie jest jednak niewielka, bo mime i tak nie jest poprawnie ropoznawane. Trzeba by zbadac plik już po uploadzie. Pozdrawiam, |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Fakt wartość tego rozwiązania może jest niewielka ale to zawsze coś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) czyli rozumiem że ten kod i te poprzednie mam wrzucić np do pliku upload.php który jest wykonywany po wybraniu pliku w formularzu. Aha i wielkie dzięki za pomoc przy tym.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cysiaczek nie watpie w to ze php znasz lepiej odemnie ale jakos nie przepadam za OOP dlatego zrobilem z explode (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#21
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Robisz sobie jeden plik = jedna klasa i dołaczasz biblioteki w upload.php - ponieżej cała zawartośc tego pliku - nic więcej nie trzeba (no jakiś komunikat by się przydał ; p )
@marcio - ale i tak ono nie działa poprawnie - ma poważnego buga ; p btw, OOP po prostu trzeba się dzisiaj uczyć, bo to jest standard - bez tego nie dostaniesz żadnej sensowej pracy. Pozdrawiam. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
A tak btw: rozwiązanie które podał @marcio jest funta kłaków niewarte. Złoży się jeśli w nazwie pliku wystąpi kropka. Jeśli już, to nie:
tylko:
Czy inaczej, byle ostatni element... edit: @Cysiaczek: to miałeś na myśli? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) added: Znajomość OOP jest wymagana od profesjonalisty, ale nawet duże aplikacje mogą być proceduralne (vide phpMyAdmin)... Tu jak wiadomo trwa wieczny i wciąż nierozstrzygnięty spór (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował drPayton 3.11.2007, 00:39:26 |
|
|
![]()
Post
#23
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
@drPayton - ale po co kombinować z sizeof? Jest strrchr" title="Zobacz w manualu PHP" target="_manual, które zwraca cały ciąg znaków OD momentu ostatniego wystąpienia żądanego znakum czyli w pliku to.jest.nazwa.pliku.jpeg
Zakładamy oczywiście, że poprawny plik graficzny powinien mieć jakieś rozszerzenie. Jeśli nie, to pozostaje mime.
Potem najwyżej można sobie odciąć kropkę ; p Pozdrawiam. |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
ja wiem z jesli jest kropka to kicha skrypt sie rozwali ale to bylo najlatwiejsze co mozna zrobic wiec podalem a w php geniuszem nie jestem ale to co podal drPraton jest dobre o tym nie pomyslalem zeby policzyc na ile czesci policzy ciag i wyciagnac ostatni po ostatnoej kropce widac ze jeszcze nie mysle programistycznie
a tak btw o jakiego buga chodzi o tego co podal djpraton? |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
djpraton? Podoba mi się, chyba zmienię (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Faktycznie, zamiast bawić się countem lepiej strrchr, tak jak napisał @Cysiaczek (dlatego zaznaczyłem "Czy inaczej, byle ostatni element...") (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) @marcio Na Twoje pytanie odpowiedzieć musi oczywiście Cysiaczek natomiast powiem Ci, że takie podejście (obiektowe) ma jedną zasadniczą zaletę: łatwość dokonywania zmian i czytelność kodu. edit: drPraton też mi się podoba (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
drPAYTON sorki ze 2 razy pomylilem twoj nikc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ok teraz czekam na odpowiedz Cyciaszek. Ale ja mam problemy z OOP wiec wole pisac proceduralnie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ale szkoda.A tak apropo to nie wiedzialem ze jest taka funckja jak strchr() ale wszystkoego wiedziec nie mozna jak dla mnie rozwiazanie z explode ale te twoje jest najbardziej optymalne tylko nie wiem jakiego ma buga (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#27
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Właśnie tego zwiąanego z ilością kropek w nazwie pliku.
|
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
ok dzieki za odpwiedz ale czy taki blad moze wykorzystac ktos kto upload'uej plik z wieksza iloscia kropek??
Ale czy rozwiazanie drPAYTON jest dobre?? Mi sie wydaje ze jest dobre i bezpieczne i chodzi bez problemow |
|
|
![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Ale co to znaczy wykorzystać? Tutaj po prostu właściwego pliku obrazka (z kropką w nazwie) nie dałoby się wgrać. Raz jeszcze - podejście obiektowe jest znacznie wygodniejsze i warto się w to zagłębić,a w międzyczasie stosować Twoje rozwiązanie z tą jedną zmianą o której napisaliśmy. Oczywiście dodatkowo trzeba by jeszcze jakieś ify na wypadek gdyby jakiś błąd wystąpił etc, ale schemat jest ok.
Ucz się OOP (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) To konieczność... |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
ok poucze sie ale chodzilo mi o to ze cyciaszek napisal ze to jest bug wiec myslalem ze mozna to jakos wykorzystac jakby to nazwal blad to bym nie pytal ale wszystko ok (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 09:27 |