2012-06-26 31 views
1

有一些我不明白的Apps腳本GUI生成器。 我想要一個文件上傳,我不能讓它工作。 基本設置:表單面板,流程面板,文件上傳,提交按鈕。 我沒有把任何事件放在鼠標點擊(我明白doPost默認捕獲它)。GUI生成器:文件上傳,提交按鈕和DoPost問題

相關的功能:發生意外錯誤

重要提示:

遇到的錯誤:

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; 
} 

所以我在提交點擊按鈕時,一定要得到一個錯誤:錯誤由行var doc = DocsList.createFile(fileBlob);生成。所以我懷疑來自文件上傳對象的數據沒有被正確接收。

有趣的是,Google提供的示例here適合我。這意味着如果GUI是通過代碼和而不是通過GUI構建器完成的,則上傳工作。

我三重檢查了一切,我真的很困惑,並開始認爲可能有一個通過GUI生成器上傳文件的錯誤。任何幫助?

感謝您對此事的任何幫助。

回答

1

這種錯誤經常來當小部件的是不是應該是什麼,你可以嘗試登錄的e.parameter,看看它是什麼... Logger.log(e.parameter); 檢查也是widget的沒有意外的空間...

編輯:遵循您的意見,我在這裏測試它,它的工作原理。你能否檢查一下你是否有相同的設置(組件樹,名稱...),這裏是一個屏幕截圖。 : enter image description here

+0

請注意[documentation](https://developers.google.com/apps-script/class_fileupload)顯示了與腳本編輯器非常相同的示例構建,它可能會幫助您嘗試 –

+0

謝謝。 fileupload對象的**名稱**是正確的,組件的**名稱**沒有空格。錯誤來自'var doc = DocsList.createFile(fileBlob)'這行'並且給了我__ https://docs.google.com上的頁面顯示:遇到錯誤:發生意外錯誤_。這可能是Docs的權限問題嗎? – VanacK

+0

您是否嘗試過文檔中顯示的腳本?它會拋出同樣的錯誤嗎? –