Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sprawdzanie typu pliku
sirsimon
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.04.2009

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


Witam. Mam następujący problem. Chciałem miec mozliwość dodawania komentarzy z obrazami/zdjeciami. Wiem, że istnieje metoda <input type=file>, jednak tym sposobem nie można przesłać pliku z innego serwera, np. fotka.pl.Chciałem więc zrobić to na podstawie kontrolki text. No i tu mam problem. O ile w pierwszym wypadku potrafię sprawdzić, czy podany plik jest obrazem, to gdy ktoś poda link w polu text - już nie. Czy jest na to jakiś posób?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
osl
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


nie do końca chyba rozumiem, ale spróbuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

na podstawie linku do pliku nie będziesz w stanie stwierdzić jego rzeczywistego typu.
możesz dostać np. link do pliku php który wysyła obrazek jak i również 'niby' jpg, który ma w sobie skrypt...
tak czy siak będziesz musiał go pobrać na serwer.

może da rade jakoś przez analizowanie nagłówków http, nie wiem, nie próbowałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
DREEMus
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


Jak @osl napisał, pobrać i tak go musisz, ale http://pl.php.net/manual/pl/function.mime-content-type.php
Powinno załatwić sprawę z problemem, co to za plik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zastępczo możesz użyć http://pl.php.net/manual/pl/function.finfo-file.php

Ten post edytował DREEMus 21.04.2009, 10:05:40
Go to the top of the page
+Quote Post
sirsimon
post
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.04.2009

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


Czyli muszę go pobrać na serwer? W jaki sposób to się robi, bo chyba nie formularzem. Wybaczcie, ale nie wiele jeszcze umiem. Jak potem się do tego pliku dobrać? W przypadku input file było to po prostu:

  1. <?php
  2. if ($f['type'] == 'image/png' or $f['type'] == 'image/jpeg' or $f['type'] == 'image/gif' or $f['type'] == 'image/bmp'){
  3.     $x = getimagesize($f['tmp_name']);
  4.     if (is_array($x) or $x[0] >= 2){
  5.         ...
  6.     }
  7. }
  8. ?>


Tu też tak sprawdzę? Jak otworzyć plik bym mógł go sprawdzić? Mam go ściągać w konkretne miejsce, czy do tema, tak jak w input file?
Go to the top of the page
+Quote Post
DREEMus
post
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


formularzem wysyłasz do pliku np. sprawdz.php
a tam sprawdzasz przez mime_content_type ()
i na podstawie tego lecisz z plikiem dalej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sirsimon
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.04.2009

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


Kod
Fatal error: Call to undefined function mime_content_type()


Cytat
This function has been deprecated
Go to the top of the page
+Quote Post
DREEMus
post
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


Zastępczo możesz użyć http://pl.php.net/manual/pl/function.finfo-file.php

Sam właśnie testuję mime_con... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

I LOL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
A odblokowałeś mime_magic w PHP.INI (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował DREEMus 21.04.2009, 10:33:10
Go to the top of the page
+Quote Post
sirsimon
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.04.2009

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


http://www.digipedia.pl/php/ref.fileinfo.html - z tego co widzę, nie ma potrzeby zmieniać nic w pliku php.ini. Zresztą nie mam do niego dostepu (albo tak mi sie wydaje)...
Go to the top of the page
+Quote Post
DREEMus
post
Post #9





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


No widzisz, a u mnie na serwerze domowym nie mam PECL'a FileInfo ... i też nie sprawdzę ...
Zresztą, tablica $_FILES daje Ci typ MIME, ale po rozszerzeniu pliku, co nie jest zbytnio "pewnym" sposobem ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:55