Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Filetypes dla uploadu
potreb
post 25.01.2009, 15:04:25
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Witam. Mam pytanie dotyczące typów plików.
  1. <?php
  2. $filetype = $_FILES['obraz']['type'];
  3. switch($filetype)
  4.        {
  5.                case 'image/jpeg':
  6.                        $pref_gd = "jpeg";
  7.                        break;
  8.                case 'image/png':
  9.                        $pref_gd = "png";
  10.                        break;
  11.               case 'image/pjpeg':
  12.                        $pref_gd = "jpeg";
  13.                        break;
  14.        }
  15. ?>


Przykładowy skrypt sprawdza jaki jest to typ pliku. Jeżeli np będę wysyłać plik o rozszerzeniu .install to w jaki sposób określić, iż jest to plik nieropoznawany przez typ mime.

Czy muszę po switch dać warunek if, który sprawdzi czy instrukcja case zwróciła pref_gd czy mogę to zrobić w instrukcji switch.

Ten post edytował potreb 25.01.2009, 15:07:20


--------------------

Go to the top of the page
+Quote Post
erix
post 25.01.2009, 15:05:16
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jeżeli np będę wysyłać plik o rozszerzeniu .install to w jaki sposób określić, iż jest to plik nieropoznawany przez typ mime.


default? winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
potreb
post 25.01.2009, 15:52:17
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Już nie piję smile.gif

Jeszcze jedno pytanie. Dlaczego skrypt traktuje ten plik aaa.xxx jako mime application/octet-stream questionmark.gifquestionmark.gif

Taki typ jak rar nie jest rozpoznawalny przez MIME, czy jest możliwość dodania MIME dla plików o rozszerzeniu .rar?

Ten post edytował potreb 25.01.2009, 15:14:06


--------------------

Go to the top of the page
+Quote Post
erix
post 25.01.2009, 16:18:26
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Dlaczego skrypt traktuje ten plik aaa.xxx jako mime application/octet-stream

A serwer stoi na Windows? snitch.gif Jeśli tak, to on rozpoznaje MIME wg rozszerzeń, a nie wg właściwego MIME. Zobacz sobie w konfiguracji Apache odpowiednie mapowania w pliku (mime.types).

Jest sposób, aby to obejść, ale wymagałoby to instalacji MSys i sprawdzania typu MIME przez port uniksowego polecenia file -bi.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
potreb
post 25.01.2009, 16:34:57
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Oskryptowanie będzie stało na Windows IIS, już znalazłem temat o dodawaniu konkretnych typów MIME.
Próbuje jeszcze przy uploadzie powywalać polskie znaki. Niestety dla utf-8 strtolower nie działa dobrze, dlatego robię poprzez str_replace:
  1. <?php
  2. $a = array("Ą", "Ć", "Ę", "Ł", "Ń", "Ó", "Ś", "Ź", "Ż", "ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż");
  3.    $b   = array("a", "c", "e", "l", "n", "o", "s", "z", "z", "a", "c", "e", "l", "n", "o", "s", "z", "z");
  4.    $filename = str_replace($a, $b, $filename);
  5. ?>


Niestety funkcja nie działa mi wcale. Jeżeli jest to ciąg znaków przypisany z innej zmiennej a nie z super globalnej wtedy jest dobrze.

Ten post edytował potreb 25.01.2009, 16:35:34


--------------------

Go to the top of the page
+Quote Post
erix
post 25.01.2009, 16:43:16
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




mb_strtolower" title="Zobacz w manualu PHP" target="_manual winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 12.06.2025 - 15:19