WordPress “Üzgünüm, bu dosya türüne güvenlik nedeniyle izin verilmiyor” Hatası
WordPress her geçen gün daha yaygın kullanılan bir sistem olmaya devam ediyor. Kullanımının kolaylığı ve neredeyse her alanda yapılan bilen site yapısı ile sadece blog olarak değil kurumsal sitelerde wordpress alt yapısını kullanmaya başladı. WordPress kullanım miktarı arttıkça bazı sorunlar da daha fazla ortaya çıkmaya başladı.
Son karşılaşılan hatalardan bir tanesi wordpress admin paneli üzerinden bir fotoğraf / resim (jpg, webp, ai vb uzantılarda) yüklemeye çalıştığınızda karşınıza “Üzgünüm, bu dosya türüne güvenlik nedeniyle izin verilmiyor” hatasının karşımıza çıkması ve fotoğrafların yüklenmemesi.
Daha öncesinde wordpress sitenizde ortam yükleme ayarlarını gözden geçirmemiş ve default bir şekilde bırakmış iseniz, gelişen teknoloji ile ortaya çıkan ve klasik formatlar dışında olan dosya uzantılarını yükleme konusunda zorluk çekebilirsiniz. Her ne kadar hata kodunda “güvenlik” dese de bu güvenlik aslında ilk başta bilinen dosya uzantıları dışında herhangi bir şeyin yüklenmesini engellemek için konulan bir önlemdi. Yani örneğin .webp uzantılı bir fotoğraf eklemek nasıl bir güvenlik zaafiyeti oluşturabilir ki? Son zamanlarda önemi artan bir resim formatı halbuki, değil mi? O yüzden bu hatayı almış olmanızın sebebi yükleme ayarlarına herhangi bir değişiklik yapmamış olmanızdır.
WordPress oldukça fazla kişi tarafından geliştiriliyor ama birçok dosya türlerini de ne yazık ki “güvenlik” adı altında desteklemiyor. Yani bir sürü dosya türü vardır, benim bu makalemi yazmama neden olan da mesela .webp uzantısı.
WordPress “Üzgünüm, bu dosya türüne güvenlik nedeniyle izin verilmiyor.” Hatası çözümü
Yapacağınız işlemlerden önce yedek almanız önemli; öncelikle yedek alın ki herhangi bir sorun da geri dönüş yapabilesiniz. Sonrasında FTP yardımıyla wp-config.php dosyasını açalım veya Cpanel kullanıyorsanız Cpanel üzerinden wp-config.php dosyasına sağ tıklayıp, düzenle deyin. Aşağıdaki kodu Mutlu bloglar teriminden sonra PHP tagları içerisinde kalacak şekilde dosyaya ekleyin ve kaydedin.
define(‘ALLOW_UNFILTERED_UPLOADS’, true);
Bu kod yardımıyla istediğiniz formatta dosyaları sitenize yükleyebilirsiniz. Tabii işte sorun burada başlar: her önüne gelen şeyi de yüklemeyin, güvenlik açısından bu önerilmiyor. Bu yüzden belirli dosya yürlerini engellemek adına aşağıdaki kodu wp-includes/fuctions.php içerisine ekleyerek kullanabilirsiniz. (mp4 örnek olarak ekledim)
function my_custom_mime_types( $mimes ) {
// New allowed mime types.
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
$mimes['doc'] = 'application/msword';
// Optional. Remove a mime type.
unset( $mimes['exe'] );
return $mimes;
}
add_filter( 'upload_mimes', 'my_custom_mime_types' );
Burada mp4 yazan kısma siz istediğinizi araya virgül koyarak yazabilirsiniz. Aşağıda size izin verebileceğiniz veya engelleyebileceğiniz dosya uzantılarını veriyorum:
Resim (Images )
.jpg .jpeg .png .gif .icoDosya (Documents)
.pdf (Portable Document Format; Adobe Acrobat)
.doc, .docx (Microsoft Word Document)
.ppt, .pptx, .pps, .ppsx (Microsoft PowerPoint Presentation)
.odt (OpenDocument Text Document)
.xls, .xlsx (Microsoft Excel Document)
.psd (Adobe Photoshop Document)Ses (Audio)
.mp3 .m4a .ogg .wavVideo
.mp4, .m4v (MPEG-4)
.mov (QuickTime)
.wmv (Windows Media Video)
.avi
.mpg
.ogv (Ogg)
.3gp (3GPP)
.3g2 (3GPP2)
Kesin Çözüm: Eklenti yardımıyla hatayı düzeltmek
Üzgünüm, bu dosya türüne güvenlik nedeniyle izin verilmiyor hatasını eklenti yardımıyla da çözebilirsiniz. Ben kod işlerinden anlamam, işimi eklenti yardımıyla çözmek istiyorum diyorsanız; bunun da çözümü var. Mime türleri için WordPress üzerinde oldukça fazla eklenti yok, çoğu da eski ama işe yarar bir tanesini sizlerle paylaşayım: WP Add Mime Types eklentisini WordPress menüden Eklentiler > Yeni Ekle kısmından WP Add Mime Types şeklinde aratın, kur ve etkinleştir seçenekleri ile eklentiyi aktif hale getirin. Eklentiyi kurduktan sonra Ayarlar kısmına girip eklemek istediğiniz dosya türünü arayın ve Değer Ekle kutusuna kopyalayıp yapıştırın. Sonrada kaydedin. İşte bu kadar.
Bir başka eklenti daha var: Enhanced Media Library yardımıyla mime türlerini kolay bir şekilde değiştirebilirsiniz. MIME türü bir dosyanın içeriğini tanımlar ve nasıl doğru bir şekilde görüntüleneceğini söyler. Örneğin .jpg dosya uzantısı MIME türü image / jpeg ile karşılık gelir ve web tarayıcılarında görüntülenmesi sağlanıyor.
Enhanced Media Library eklentisini Eklentiler > Yeni Ekle kısmından aratarak eklentiyi indirip etkinleştirin. Sonrasında Ayarlar Kısmında çıkan Media kısmına giriş yapın. Burada bir MIME türü için yani dosya uzantısı için yüklemelere izin vermenin iki yöntemi var: İlk yol Allow Upload seçeneğini seçmek. Bunun dışında yeni bir dosya uzantısı eklemek istiyorsanız Add New MIME Type kutucuğuna tıklayın. Sonraki aşamalarda işaretleri izleyin. Eğer fikriniz değişirse WordPress varsayılan MIME türlerini geri yükleyebilirsiniz.
Eğer sitenizde shh üzerinden bitnami çalıştırıyorsanız aşağıdaki kodu kullanarak sorunu çözebilirsiniz.
sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/wp-content
sudo chmod -R g+w /opt/bitnami/apps/wordpress/htdocs/wp-content
Bu yazımda sizlere WordPress’de bu hataya neyin neden olduğunu anlatmaya çalıştım. Sonra hatayı düzeltmek için üç olası çözüm söyledim:
- Bir eklenti kullanarak onaylanmış dosya türlerini değiştirin.
- Function.php dosyasını düzenleyerek upload_mimes filtresini kullanma yöntemiyle düzenleme.
- Wp-config.php dosyanızda yüklemelere izin verme komutuyla.
Hala hata almaya devam ediyorsanız ve yüklemek istediğiniz dosyayı yükleyemiyorsanız web alanı sağlayıcınıza durumu bildirmeniz gerekiyor.