2011-08-24 4 views
3

J'ai quelques questions en essayant d'implémenter un widget fileupload dans mon application. Après de nombreux essais, cela ne semble pas fonctionner. Par conséquent, j'ai essayé d'obtenir des solutions de travail pour voir si je peux comprendre quelque chose à partir de là.Comment utiliser GWT fileupload?

http://code.google.com/p/faculty-gwt/source/checkout

Cependant, j'ai essayé de télécharger un fichier en utilisant cela et il semble que je reçois des messages d'erreur aussi. et qu'est-ce que cette boîte de texte et cette boîte à liste supposent faire? Il est destiné à montrer un exemple de validation d'une entrée avant de la soumettre?

Quelqu'un peut-il me guider pour résoudre ce problème? Merci.

Répondre

2

n'a jamais essayé d'utiliser le lien fourni, mais ce que je l'ai fait utiliser aa widget de GWT FileUpload:

J'ai construit un widget de téléchargement de fichiers à l'aide du uibinder:

<g:FormPanel ui:field="docForm"> 
    <g:FlowPanel ui:field="inputPane"> 
     /*other displayed info*/ 
     <g:FileUpload ui:field="DocPath"/> 
     /*other displayed info*/ 
    </g:FlowPanel> 
</g:FormPanel> 

(par la GWT api, widgets fileUpload ne peuvent être utilisés à partir d'un panneau FormPanel)

Assurez-vous définissez ces paramètres dans le panneau FormPanel, sinon vous aurez probablement des problèmes:

yourFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART); 
    yourFormPanel.setMethod(FormPanel.METHOD_POST); 

Ce widget est tombé dans ma page de conteneur, puis ajouté au panneau d'affichage:

private FileUploadWidget createNewUploader(){ 
    FileUploadWidget uploader = new FileUploadWidget(/*my constructor params*/); 

    uploader.addChangeHandler(new ChangeHandler() {   
     @Override 
     public void onChange(ChangeEvent event) { 
      DocPanel.add(createNewUploader()); 
     } 
    }); 

    return uploader; 
} 

événement Mon OnChange est tellement que j'ai un nouveau, vide Uploader disponible lorsque j'utilise l'actuel.

et quand je suis prêt à présenter:

private void processUpload(FileUploadWidget upload, int id) { 
    upload.setId(id); 
    //Don't bother to submit an empty one. 
    if (upload.IsFileSelected()) 
     upload.Submit(); 
} 
Questions connexes