Получить URL реального изображения профиля Facebook

Я создаю скрипт загрузки файла и ищу лучший методы и практики для проверки загруженных файлов.

Допустимые расширения:

$allowed_extensions = array('gif','jpg','png','swf','doc','docx','pdf','zip','rar','rtf','psd');

Вот список того, что я делаю.

  1. Проверка расширения файла

     $ path_info = pathinfo ($ filename);
    if (! in_array ($ path_info ['extension'], $ allow_extensions)) {
     die ('File #'. $ i. ': неверное расширение файла.');
    }
    
  2. Проверка типа MIME файла

     $ allow_mimes = array ('image / jpeg', 'image / png', 'image / gif', 'text / richtext', 'multipart / x-zip', 'application / х-ударноволновая-вспышка», 'применение / MSWord', 'приложение / PDF', 'применение / х-RAR-сжатый', 'изображение / vnd.adobe.photoshop');
    if (! in_array (finfo_file ($ finfo, $ file), $ allow_mimes)) {
     die ('File #'. $ i. ': Incorrent mime type.');
    } 
    
  3. Проверка размера файла.

Что нужно сделать, чтобы убедиться, что загруженные файлы являются действительными файлами? Я заметил странную вещь. Я изменил расширение файла .jpg на .zip и ... он был загружен. Я думал, что он будет иметь неправильный тип MIME, но после этого я заметил, что я не проверяю для определенного типа, но если конкретный тип MIME существует в массиве. Я исправлю это позже, это не представляет для меня проблем (конечно, если у вас есть хорошее решение / идея, не стесняйтесь поделиться им, пожалуйста).

Я знаю, что делать с изображениями (попробуйте изменить размер, повернуть, обрезать и т. д.), но не знаю, как проверить другие расширения.

Теперь пришло время ответить на мои вопросы.

  1. Знаете ли вы хорошие методы для проверки таких файлов? Может быть, мне следует распаковать архивы для файлов .zip / .rar, но как насчет документов (doc, pdf)?
  2. Будет ли работать ротация, изменение размера. psd файлы?
  3. В основном я думал, что файл .psd имеет следующий mime: application / octet-stream, но когда

я попытался загрузить файл .psd, он показал мне (image / vnd.adobe.photoshop). Я немного запутался по этому поводу. Всегда ли файлы имеют одинаковый тип MIME?

Кроме того, я не могу заставить блок кода работать. Кто-нибудь догадывается, почему?

6
задан The Beast 30 December 2015 в 02:53
поделиться