HTML5 et Javascript : Ouverture et la Lecture d'un Fichier Local avec un Fichier API

Je suis en utilisant Google Web Toolkit pour un projet et souhaitez que l'utilisateur de sélectionner un fichier texte pour l'ouvrir dans une fenêtre de texte à l'intérieur du navigateur. Voici la presque code de travail:

 private DialogBox createUploadBox() {
final DialogBox uploadBox = new DialogBox();
VerticalPanel vpanel = new VerticalPanel();
String title = "Select a .gms file to open:";
final FileUpload upload = new FileUpload();
uploadBox.setText(title);
uploadBox.setWidget(vpanel);
HorizontalPanel buttons = new HorizontalPanel();
HorizontalPanel errorPane = new HorizontalPanel();
Button openButton = new Button( "Open", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
String filename = upload.getFilename();
int len = filename.length();
if (len < 5) {
Window.alert("Please enter a valid filename.\n\tFormat: <filename>.gms");
} else if (!filename.substring(len-4).toLowerCase().equals(".gms")) {
Window.alert(filename.substring(len-4) + " is not valid.\n\tOnly files of type .gms are allowed.");
} else {
Window.alert(getFileText(filename));
}
}
private native String getFileText(String filename) /*-{
//Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
//Great success! All the File APIs are supported.
var reader = new FileReader();
var file = File(filename);
str = reader.readAsText(file);
return str;
} else {
alert('The File APIs are not fully supported in this browser.');
return;
}
}-*/;
});
Button cancelButton = new Button( "Cancel", 
new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
uploadBox.hide();               
}
});
buttons.add(openButton);
buttons.add(cancelButton);
vpanel.add(upload);
vpanel.add(buttons);
vpanel.add(errorPane);
uploadBox.setAnimationEnabled(true);
uploadBox.setGlassEnabled(true);
uploadBox.center();
return uploadBox;
}

Chaque fois que j'essaie d'utiliser cette fonction dans mon programme, j'obtiens:

(NS_ERROR_DOM_SECURITY_ERR): erreur de Sécurité

Je suis certain qu'il est tubé par:

var file = new File(filename, null);

Avertissement: je ne suis pas un programmeur Javascript par un tronçon, n'hésitez pas à signaler toute erreur évidente, je suis en train de faire ici.

  • re: les mises à jour - fenêtre/$wnd est probablement le seul point qui est gwt-spécifique. Qui, et comment passer dans le InputElement instance.
InformationsquelleAutor holocron | 2012-04-12