JSF

JSF Dersleri-Dosya Yüklerken Uzantı ve Boyut Kısıtlama

Merhaba arkadaşlar. Dosya Yükleme yazımızda bir JSF projesine dışarıdan nasıl doya alınabildiğini öğrenmiştik. Bu yazıda ise dosya yüklenmesi sırasında uzantı ve boyut kısıtlaması işlemlerinin nasıl yapıldığını öğreneceğiz. Örnek uygulamamızda sadece doc/docx uzantısına sahip olan ve boyutu 100KB’den az olan dosyaların yüklenebildiği bir sistem yazılıdır. Örnek uygulamamızın kodları,kodların açıklaması ve ekran çıktıları şu şekilde:

index.xhtml Kodu

Xhtml kodumuz içinde h:inputFile etiketimizin validator bileşeni ile Java tarafında yazdığımız kısıtlama şartlarını bildiriyoruz. Butona basıp göndermek istediğimizde burada xhtml sayfasına verilen şartlar değerlendirilecek.

Bean.Java Kodu

Dosya yükleme yazımızda yazdığımız Java koduna ek olarak burada validate() metodunu ekledik. Gördüğünüz üzere bu metot bir Override metot. Bunu Validator arayüzünden alarak sağladık. Metot içinde 2 if komutu ile dosyanın hem boyutu ile hem de uzantısı denetleniyor. Eğer yazdığınız uygulama sadece doc/docx uzantısını alsın istiyorsanız application/vnd.openxmlformats officedocument.wordprocessingml.document ifadesini şart olarak vermelisiniz. Eğer resim yüklenmesini isterseniz image/jpeg ya da txt yüklenmesini istiyorsanız text/plain ifadesini kullanabilirsiniz.

Ekran Çıktıları

Bir txt dosyası seçtim. Şimdi Yükle butonuna tıklayacağım.

Bir txt dosyası seçtim. Şimdi Yükle butonuna tıklayacağım.

 

 

 

 

 

 

 

 

 

 

 

Yükle butonuna tıkladım ama doc/docx olmadığı için yüklemedi ve hata verdi.

Yükle butonuna tıkladım ama doc/docx olmadığı için yüklemedi ve hata verdi.

 

 

 

 

 

 

 

 

 

 

 

Şimdi boyutu 100KB üstü olan bir docx dosyası seçtim.

Şimdi boyutu 100KB üstü olan bir docx dosyası seçtim.

 

 

 

 

 

 

 

 

 

Dosyanın verdiğim 100KB sınırından büyük olduğuna dair hata mesajı verildi.

Dosyanın verdiğim 100KB sınırından büyük olduğuna dair hata mesajı verildi.

 

 

 

 

 

 

 

 

 

 

 

Bu yazıda da bu kadar arkadaşlar. Başka bir yazıda görüşmek üzere sağlıcakla kalın.

 

 

  • bilalekrem

    Merhaba hocam;

    Validator dersinizde kullandığımız gibi h:message etiketini kullanmassak ben validator tarafından hata fırlatmasına rağmen uyarı alamadım. Ustteki kodda gözden kaçmış galiba. Bilginize sunar iyi çalışmalar dilerim.