2012-06-26 2 views
1

Il y a quelque chose que je ne comprends pas avec Apps Script GUI Builder. J'essaye d'avoir un téléchargement de dossier et je ne peux pas l'avoir fonctionné. Configuration de base: panneau de formulaire, un panneau de flux, un téléchargement de fichier, un bouton de soumission. Je n'ai mis aucun événement sur le clic de souris (j'ai compris que le doPost l'attrape par défaut).GUI Builder: téléchargement de fichier, bouton Soumettre et problème DoPost

Les fonctions associées:

function appBVFileUpload2() { 
    var mydoc = SpreadsheetApp.getActiveSpreadsheet(); 
    var app = UiApp.createApplication().setTitle('File Upload'); 
    app.add(app.loadComponent("ImportationBV")); // load the GUI 
    mydoc.show(app); 
} 

function doPost(e) { 
    // data returned is a blob for FileUpload Form 
    var fileBlob = e.parameter.thefile; // thefile is the name of the File Upload Object 
    var doc = DocsList.createFile(fileBlob); // Generate the Error <<< 
    var app = UiApp.getActiveApplication(); 
    app.close(); 
    return app; 
} 

Je reçois toujours une erreur en cliquant sur le bouton Envoyer:

Erreur rencontrée: Une erreur inattendue est survenue

Note importante: l'erreur est générée par la ligne var doc = DocsList.createFile(fileBlob);. Je suspecte donc que les données de l'objet de téléchargement de fichier ne sont pas reçues correctement.

Il est intéressant de noter que l'exemple fourni par Google here fonctionne pour moi. Ce qui signifie que si le GUI est fait via le code et pas via le constructeur GUI le téléchargement fonctionne.

J'ai triplement vérifié tout, je suis vraiment perplexe, et commence à penser qu'il peut y avoir un bug avec le téléchargement de fichiers via le GUI Builder. De l'aide?

Merci pour toute aide à ce sujet.

Répondre

1

Cette erreur vient souvent lorsque le nom du widget est pas ce qu'il devrait être, vous pouvez essayer de vous connecter le e.parameter pour voir ce qui est en elle ... Logger.log(e.parameter); Vérifiez également que le nom du widget n'a pas d'espace accidentel dedans ...

EDIT: suite à vos commentaires, je l'ai testé ici et ça marche. Pourriez-vous s'il vous plaît vérifier si vous avez la même configuration (arborescence des composants, noms ...), voici une capture d'écran. : enter image description here

+0

noter que (https://developers.google.com/apps-script/class_fileupload) [Documentation] montre le même exemple construire à partir de l'éditeur de script, il peut vous aider à essayer –

+0

Merci. Le ** nom ** de l'objet fileupload est correct, le ** nom ** du composant n'a pas d'espace dedans. L'erreur provient de la ligne 'var doc = DocsList.createFile (fileBlob);' et me donne _La page https://docs.google.com dit: Erreur rencontrée: Une erreur inattendue s'est produite_. Pourrait-il être un problème d'autorisation avec Docs? – VanacK

+0

Avez-vous essayé le script affiché dans le document? Est-ce qu'il lance la même erreur? –