Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Zend_Validate_File_MimeType i ... nie działa.
Master Pain
post 25.11.2009, 10:17:54
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Witam

W formularzu dodaję walidator: Zend_Validate_File_MimeType
Kod:
  1. $mimeType = new Zend_Validate_File_MimeType(array('application/msword', 'application/pdf', 'application/rtf'));
  2. $mimeType->setMessage('Tylko pliki: *.doc, *.pdf, *.rtf.');


Mimo tego formularz nie akceptuje plików *.doc, *.pdf, *.rtf.

Wiecie może co jest problemem? Używam ZF 1.9.5 (za chwilkę 1.9.6, wyszła wczoraj nowa wersja smile.gif )

Pozdrawiam!
Go to the top of the page
+Quote Post
batman
post 25.11.2009, 10:26:01
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Wydaje mi się, że jest problem z tym, że przeglądarka źle wysyła nagłówki. Sprawdź na kilku różnych przeglądarkach typ wysyłanych plików. Zgaduje, że mime będzie application/octet-stream.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Master Pain
post 25.11.2009, 10:54:43
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Witam

application/octet-stream ? Dla jakiego typu plików?
Zauważyłem też, że .rtf to application/msword
a .doc to application/vnd.ms-word.

Poza tym nadal nie działa. Testowane na FF, Operze, Chromie.
Go to the top of the page
+Quote Post
batman
post 25.11.2009, 11:13:47
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
application/octet-stream ? Dla jakiego typu plików?
Dla większości plików binarnych, których przeglądarka nie potrafi rozpoznać.
Cytat
Zauważyłem też, że .rtf to application/msword
a .doc to application/vnd.ms-word.

Poza tym nadal nie działa. Testowane na FF, Operze, Chromie.
Sprawdź na IE. Ta przeglądarka obsługuje takie typy plików. W pozostałych mogą pojawiać się opisane przez Ciebie problemy.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Master Pain
post 25.11.2009, 11:17:34
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


To inaczej zapytam: jak ustawić walidator, żeby przepuszczał tylko pliki .doc, .pdf, .rtf? Musi działać w FF, Opera, Chrome, Safari ... no i IE6+.

Pozdrawiam.
Go to the top of the page
+Quote Post
batman
post 25.11.2009, 11:25:20
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Doraźnie możesz użyć Extension Validator. Jednak to może powodować problemy z bezpieczeństwem, ponieważ łatwo podmienić rozszerzenie pliku i obejść ten walidator.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Master Pain
post 25.11.2009, 11:28:13
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


No to wiem winksmiley.jpg ale nie tego szukam. Dzięki od razu za pomoc, batman. Jak nie znajdzie się inne rozwiązanie to z tego skorzystam, ale wolałbym nie.
Go to the top of the page
+Quote Post
Master Pain
post 25.11.2009, 12:16:55
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Przepraszam, za double-post, ale dodaję celowo, żeby było 'nowe' dla wszystkich.

Zapytałem wujka Google, i znalazłem takie info:

Cytat
For security reasons we had to turn off the default fallback mechanism of the MimeType, ExcludeMimeType, IsCompressed and IsImage validators. This means, that if the fileInfo or magicMime extensions can not be found, the validation will always fail.

If you are in need of validation by using the HTTP fields which are provided by the user then you can turn on this feature by using the enableHeaderCheck() method.

Oraz dalej
Cytat
You should note that relying on the HTTP fields, which are provided by your user, is a security risk. They can easily be changed and could allow your user to provide a malcious file.


Czyli, pozostaje mi użycie enableHeaderCheck(), które jest chyba trochę lepszym (choć nie idealnym, jak w/w) rozwiązaniem niż sprawdzanie rozszerzenia pliku. Lub włączenie rozszerzeń: fileInfo albo magicMime.

Pozdrawiam!
Go to the top of the page
+Quote Post
darko
post 25.11.2009, 12:26:56
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


może tak:
  1. // (...)
  2. $upload = new Zend_Form_Element_File("addme");
  3. $upload->setLabel("File ");
  4. $upload->setRequired(true);
  5. $upload->addValidator('Extension', false, 'doc,pdf,rtf');
  6. // (...)
  7. $form = new Zend_Form();
  8. // (...)
  9. $form->addElements(array($upload));
  10. // (...)


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
seth-kk
post 25.11.2009, 17:55:12
Post #10





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


@darko: batman o tym pisze pare postow wyzej
@Master Pain: a to widziales:
Cytat
This component will use the fileinfo extension if it is available. If it's not, it will degrade to the mime_content_type function. And if the function call fails it will use the MIME type which is given by HTTP.

sprawdz z czego korzysta twoj serwer/php


--------------------
Go to the top of the page
+Quote Post
Master Pain
post 26.11.2009, 08:36:56
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Doszedłem do tego, ale dzięki!
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: 13.08.2025 - 22:19