Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Filetypes dla uploadu
Forum PHP.pl > Forum > Przedszkole
potreb
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.
erix
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
potreb
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?
erix
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.
potreb
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.
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.