télécharger fichier sur le client en GWT
Bonjour,
je voudrais faire une petite application GWT qui affiche une page sur le client. Cette page possède un bouton qui lorsque on clique dessus, doit proposer un téléchargement d'un fichier situé sur le serveur.
D'après les recherches que j'ai méné, j'ai essayé de faire une requête HTTP que le client envoie lorsque l'on clique sur le bouton. Cette requête déclenche une HttpServlet sur le serveur. Mon soucis c'est que je ne peux pas faire que mon serveur envoie un flux d'octet sur le client car l'object Response sur le client, ne gère que les String.
J'aimerais savoir si il y'a une autre manière de proceder pour le faire.
Procedure sur la partie cliente effectuant la requête:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
public void TransferFromServer(){
// String url = "http://www.myserver.com/getData?type=3";
// RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(GWT.getModuleBaseURL()+"FileTransferService"));
String url = URL.encode(GWT.getModuleBaseURL()+"web.xml");
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
try {
Request request = builder.sendRequest(null, new RequestCallback() {
@Override
public void onError(Request request, Throwable exception) {
// Couldn't connect to server (could be timeout, SOP violation, etc.)
dlgbx.setText("Transfer File - Failure");
lbl.setText(exception.getMessage());
dlgbx.center();
closebtn.setFocus(true);
}
@Override
public void onResponseReceived(Request request, Response response) {
if (200 == response.getStatusCode()) {
dlgbx.setText("Transfer File - Success (Code = 200)");
lbl.setText(response.getText());
dlgbx.center();
closebtn.setFocus(true);
} else {
// Handle the error. Can get the status text from response.getStatusText()
dlgbx.setText("Transfer File - Success (Code != 200)");
lbl.setText(response.getText());
dlgbx.center();
closebtn.setFocus(true);
}
}
});
} catch (RequestException e) {
// Couldn't connect to server
}
} |
Merçi de votre aide.