22 Ağustos 2012 Çarşamba

ZK FRAMEWORK ILE SUNUCUYA  DOSYA YÜKLEME (FILE UPLOAD TO SERVER WITH ZK FRAMEWORK)

Merhaba arkadaşlar.
Ftp kullanmadan sunucuya dosya yükleme yapacağız.
Kullanılan web framework   =Zk Framework
Kullanılan Programlama dili = Java
2 tane kod parçası işimisi görecektir.
Zk
<?xml version="1.0" encoding="UTF-8"?>
<zk xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">
       <window id="dosyayukleme" use="DosyaYukleme"
             border="none" height="100%" width="100%"  >
                                                  
             <hbox>
                    <button id="upload" label="Dosya Ekle" onClick="dosyayukleme.upload()"
                           upload="true"
                           style="background-color:#f3f3f3">
                    </button>
                   
              </hbox>     
       </window>
</zk>
Java
public class DosyaYukleme extends Window {
       private int sayac=0; //Bu değişkeni oluşturmamızın nedeni bir dosyayı 2 yuklenmesini engellemektir.
      
       public void upload() throws Exception {
            
             Button upload = (Button) getFellowIfAny("upload");
            
             upload.addEventListener("onUpload", new EventListener() {
                   
                    public void onEvent(Event event) throws Exception {
                           w.setSayac(w.getSayac()+1);
                           ServletContext context = (ServletContext) Executions
                                        .getCurrent().getDesktop().getWebApp()
                                        .getNativeContext();
                           String prefix = context.getRealPath("/");
                           String path = prefix + "\\documents\\";
                          
                           Media media = ((UploadEvent) event).getMedia();
                           try {
                                  Files.copy(new File(path +media.getName()),media.getStreamData());
                           } catch (Exception e) {
                                  try {
                                        Files.copy(new File(path + media.getName()),null, media.getStringData());
                                  } catch (Exception e2) {
                                        if(w.getSayac()<2){
                                               File f=new File(path+media.getName());
                                               f.delete();
                                               Messagebox.show("Yükleme Başarısız");
                                               w.setSayac(2);
                                        }
                                       
                                  }
                                 
                           }
                          
                          
                    }
             });
            
             w.setSayac(0);
       }
       public int getSayac() {
             return sayac;
       }
       public void setSayac(int sayac) {
             this.sayac = sayac;
       }
}