• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie tylko określonego typu pliku

Object Storage Arubacloud
0 głosów
322 wizyt
pytanie zadane 2 czerwca 2016 w PHP przez Alterwar Dyskutant (7,650 p.)

Witam.

Mam taki kod:

http://pastebin.com/cyQ5TUR9

Próbuję dodać zabezpieczenie, aby można było dodać tylko plik z rozszerzeniem png, jpeg, jpg, gif. Jednak cały czas dostaję info o błędzie i już nie mam pojęcia czy, aby w dobrą stronę myślę. Dodałem do kodu coś takiego i nic.

$rozszerzenie = $_FILES['type'];

if($ins && $rozszerzenie['type'] == 'png' OR $rozszerzenie['type'] == 'jpeg')

Być może źle pobieram $rozszerzenie? Albo daję zły warunek, jednak próbowałem go umieścić też w if(is_uploaded_file) i również brak pozytywnego efektu.

2 odpowiedzi

+1 głos
odpowiedź 2 czerwca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 2 czerwca 2016 przez Alterwar
 
Najlepsza
$rozszerzenie = $_FILES['type'];
... $rozszerzenie['type']

Przypisujesz wartość type z tablicy FILES do $rozszerzenie i skąd tam się bierze znów jakaś tablica (odwołujesz się do $rozszerzenie['type'])?

Inna sprawa, że o ile dobrze pamiętam samo odwołanie się do $_FILES['type'] nic nie da, musisz jeszcze wskazać nazwę inputa tak jak to robisz np. tutaj:

$plik_rozmiar = $_FILES['plik']['size'];

No i na koniec standardowo: funkcje z mysql_ są zdeprecjonowane, a w PHP 7 usunięte (czyli od razu fatal error), a @ ukrywają błędy czyli tylko przeszkadzają... Zabezpieczenia przed sql injection też nie widzę.

komentarz 2 czerwca 2016 przez Alterwar Dyskutant (7,650 p.)

Wkleiłem kod, który podesłałeś i nic nie zmieniałem. Dostałem komunikat po przeładowaniu strony " Warning: finfo_file(pliczek.pdf): failed to open stream: No such file or directory in public_html/E-Solution/dodajReferat.php on line 93 "

Nie wiem co to może być i rozważam każdą opcję. Jeśli to coś da do myślenia to strona jest postawiona na serwerze uczelnianym.

komentarz 2 czerwca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
A masz w tym katalogu plik o nazwie "pliczek.pdf"? To był tylko przykład, napisałem żebyś sobie albo tam dodał jakiś prosty upload plików dla testów albo przerobił to co masz. Albo po prostu ręcznie wrzucił pliki na serwer, podawał do tej funkcji i tym je przetestował.

To miał być prosty kod tylko na przetestowanie, no ale musisz mu powiedzieć co ma testować. Gdy podstawisz mu plik pdf, doc, docx czy jeszcze jakiś inny zobaczysz co Ci zwraca i będziesz wiedział jaki to typ MIME i na podstawie tego będziesz mógł później zrobić warunek przy wysyłaniu.
komentarz 2 czerwca 2016 przez Alterwar Dyskutant (7,650 p.)
Wybacz, raczkuje w tym temacie. Masz rację. Po wrzuceniu na serwer dostałem informację, że jest to plik application/pdf

Po wrzuceniu pliku docx dostałem zwrot " inode/x-empty"
komentarz 2 czerwca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Okej, to teraz przetestuj pliki na jakie chcesz zezwalać i na podstawie tego zbuduj warunek. Przy wysyłaniu pliku sprawdzaj tą funkcją jaki jest typ wrzucanego pliku i porównuj z tymi na które zezwalasz (czy to umieść je w tablicy, czy po prostu ifem). I to na tyle, cała filozofia.

Och, a to dziwne... Czemu jakieś x-empty to szczerze nie wiem... U mnie ta funkcja normalnie pokazuje typ dla pliku z rozszerzeniem docx.
komentarz 2 czerwca 2016 przez Alterwar Dyskutant (7,650 p.)
Ok dziękuję Ci serdecznie za pomoc! Widzę, że odpowiednia osoba na odpowiednim stanowisku na forum :) jak coś nie będzie szło, będę się odzywał w tym temacie. :)
0 głosów
odpowiedź 2 czerwca 2016 przez maly Nałogowiec (37,190 p.)

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 6 września 2020 w C i C++ przez Arek04 Użytkownik (700 p.)
0 głosów
0 odpowiedzi 79 wizyt
pytanie zadane 18 kwietnia 2020 w C# przez weats Początkujący (470 p.)
0 głosów
1 odpowiedź 1,542 wizyt
pytanie zadane 6 lutego 2019 w Java przez mn130496 Gaduła (3,530 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...