Problem z wgrywaniem plików PDF do biblioteki mediów

  • Poziom trudności:

Od początku 2017 r. dostałem informację od kilku moich klientów o problemach z wgrywaniem plików PDF do biblioteki mediów. Za każdym razem podczas próby uploadu pojawiał się ten sam komunikat:

Zdjęcia wgrywały się bezproblemowo, użytkownicy mogli uzupełniać galerię, jednak nie mogli dodawać żadnych nowych plików.

Zazwyczaj w przypadkach w których powyższa sytuacja pojawiała się nagle i nie były dokonywane żadne modyfikacje motywu, a witryna była umieszczona na serwerach Home.pl – diagnoza problemu i Jego rozwiązanie było stosunkowo proste.

Problem wynika najprawdopodobniej z wersji PHP oferowanej przez hosting. Domyślne ustawienia zakładają, że będzie używany interpreter PHP w wersji 5.2, tymczasem WordPress rekomenduje, aby używać PHP w wersji 7 lub wyższej.

Aby przywrócić funkcjonalność dodawania załączników wystarczy zmienić wersję PHP używaną przez Twój serwer. Możesz to zrobić na trzy sposoby:

  1. Skontaktować się z administratorami swojego serwera i poprosić o zmianę wersji na wyższą.
  2. Określić wersję php w pliku .htaccess
  3. Zalogować się do panelu i samodzielnie dokonać tej zmiany.

Poniżej pokażę Ci w jaki sposób zrobić to samodzielnie.

Krok 1 – zaloguj się

Zaloguj się do Panelu Home.pl i kliknij na Usługi.

Krok 2 – wybierz usługę typu serwer

Z listy wybierz usługę serwera (usługę, która nie jest domeną). W tabeli Typ Usługi będzie widnieć jej nazwa np. Business Cloud Basic, Starter, Server, Unlimited lub inna.

Po kliknięciu na nazwę kliknij na Konfiguracja usługi, a następnie Preferencje.

Krok 3 – wybierz wyższą wersję PHP

Jeśli nic nie zmieniałeś w tym miejscu, domyślną wersją PHP będzie wersja najniższa. Teraz wystarczy, że zmienisz ją na wyższą i zapiszesz zmiany.

Alternatywne rozwiązania

Innym rozwiązaniem problemu z przesyłaniem plików jest udzielenie uprawnień do wgrywania każdego rodzaju plików, w tym również plików PDF. Zdecydowanie odradzam korzystanie z tego typu funkcji ponieważ wtedy dajemy przyzwolenie na wgrywanie dowolnych plików użytkownikom serwisu.

Aby wyłączyć całkowicie zabezpieczenia uploadu wystarczy, że wejdziesz do pliku wp-config.php i dodasz do niego w obrębie znaczników <?php i ?> następującą linijkę kodu:

define('ALLOW_UNFILTERED_UPLOADS', true);

Edycja pliku wp-config.php jest możliwa z poziomu klienta FTP. Więcej informacji o tym jak zainstalować odpowiedni program i dostać się do plików na serwerze znajdziesz tutaj.

Konfiguracja szczegółowa uprawnień plików

Aby mieć pełną kontrolę nad listą dopuszczonych/zablokowanych rozszerzeń plików dodaj do Wygląd -> Edytor -> functions.php poniższy fragment kodu:

function enable_extended_upload ( $mime_types =array() ) {
  
 //Dopuszczone rozszerzenia plików:
   $mime_types['zip']  = 'application/zip';
   $mime_types['rtf'] = 'application/rtf';
   $mime_types['ppt'] = 'application/mspowerpoint';
   $mime_types['pdf'] = 'application/pdf';
   $mime_types['flv'] = 'video/x-flv';
   $mime_types['mobi'] = 'application/x-mobipocket-ebook';
   $mime_types['epub'] = 'application/epub+zip';

// Zablokowane rozszerzenia plików:
   unset( $mime_types['exe'] );
  
   return $mime_types;
}
  
add_filter('upload_mimes', 'enable_extended_upload');

Powyższe rozwiązanie nie rozwiąże problemu z wrzucaniem plików do biblioteki spowodowanym zbyt niską wersją PHP, ale może być ciekawym rozwiązaniem dla osób, które chcą mieć pełną kontrolę nad plikami, które są wgrywane na serwer do biblioteki mediów.

UDOSTĘPNIJ