1

テキストファイルをGoogleドライブに正常にアップロードし、テキストを豚のラテン語に正常に翻訳するメソッドを作成しました。現在、翻訳されたテキストを出力するために Google ドライブで新しいドキュメントを作成しようとしています。ただし、「エラーが発生しました」というメッセージが常に表示され、ドライブを確認すると、アップロードされた元のテキストしかありません。

これが私のコードです:

function doGet(e) {

 var app = UiApp.createApplication().setTitle("Upload");
   var formContent = app.createVerticalPanel();
   formContent.add(app.createFileUpload().setName('thefile'));
   formContent.add(app.createSubmitButton('submit'));
   var form = app.createFormPanel();
   form.add(formContent);
   app.add(form);
   return app;
 }

function doPost(e) {
   // data returned is a blob for FileUpload widget
   var fileBlob = e.parameter.thefile;
   var doc = DocsList.createFile(fileBlob);

   var app = UiApp.getActiveApplication();
   //Display a confirmation message
   var label = app.createLabel('file uploaded successfully');
   app.add(label);
   return app;

  var text = doc.getDataAsString();
  Logger.log('I uploaded and my text is: ' + text);

  MakeTranslationDoc(text);
 }

function MakeTranslationDoc(passedText) 
{ 

  // Create a new Report 
  var newdoc = DocumentApp.create('Pig Latin Translation');

  newdoc.appendParagraph(ParseText(passedText));

  // Save and close the document
  newdoc.saveAndClose();
}

function ParseText(myText) 
{  
  ...convert text to piglatin...
  return results;
}

アップロードしたテキストから新しいドキュメントを正常に作成するにはどうすればよいですか?

4

2 に答える 2

0

最近最初にすべきことは、DocList よりも最新の DriveApp に移行することです。

失敗している関数は、doc.getAs(mimeType) に置き換えられた doc.getDataAsString() です。

次の 2 つの変更と、ドキュメント ID を次の関数に渡す (カップリングを失う?) コードが機能し始めます。

function doGet(e) {

 var app = UiApp.createApplication().setTitle("Upload");
   var formContent = app.createVerticalPanel();
   formContent.add(app.createFileUpload().setName('thefile'));
   formContent.add(app.createSubmitButton('submit'));
   var form = app.createFormPanel();
   form.add(formContent);
   app.add(form);
   return app;
 }

function doPost(e) {
   // data returned is a blob for FileUpload widget
   var fileBlob = e.parameter.thefile;
   var doc = DriveApp.createFile(fileBlob);

   var app = UiApp.getActiveApplication();
   //Display a confirmation message
   var label = app.createLabel('file uploaded successfully');
   app.add(label);

  docID = doc.getId()
  MakeTranslationDoc(docID);

  return app;
 }

function MakeTranslationDoc(docID) 
{

  var uploadedDoc =  DriveApp.getFileById(docID);
  var text = uploadedDoc.getAs(uploadedDoc.getMimeType());

  // Create a new Report 
  var newdoc = DocumentApp.create('Pig Latin Translation');

  newdoc.appendParagraph(ParseText(text));

  // Save and close the document
  newdoc.saveAndClose();
}

function ParseText(myText) 
{  
//  ...convert text to piglatin...
  return myText;
}

重要なことは、MimeType を知っていると仮定せず、ドキュメント自体から取得することです。

問題が発生した場合はお知らせください。

于 2013-09-10T10:02:25.717 に答える