我可以在浏览器客户端上使用Google实用工具在JavaScript中解压缩吗?

艺术人

我试图弄清楚使用Google脚本将图像从用户硬盘复制到其Google云端硬盘上的公用文件夹的流程。(请参阅https://developers.google.com/apps-script/reference/utilities/utilities#unzip%28BlobSource%29)问题是,我是否必须编写一个我从script.google作为网络应用发布的google脚本。 .com,还是可以在客户端浏览器的javascript中包含脚本?Google提供了一次上传图片的示例:“ developers.google.com/drive/web/quickstart/quickstart-js”

我想上传一个压缩的图像文件,将其解压缩,然后减小大小,然后再将其存储在用户的Google云端硬盘中。

这是一些解压缩文件的代码,但看起来它们正在script.google.com上运行;它不起作用:(http://webcache.googleusercontent.com/search?q=cache:NsTvlj17H4MJ:ctrlq.org/code/19506-google-drive-hosting&client=firefox-a&hs=ZEF&hl=en&gl=us&strip=1

思想犯罪

是我为另一个用户修改的脚本,该脚本允许将多个文件(验证可能会将文件类型限制为图像)从用户的硬盘驱动器上载到特定的文件夹。该文件夹将设置为公开共享。您只需将folderID字符串更改为与您要发送文件的文件夹相匹配的字符串。将此脚本放在Google Sites页面中,并在doPost(e)函数中更改ID,它应该执行您想要的操作。我不确定压缩和解压缩。您可以将脚本作为公共Webapp小部件发布在Google网站中。

您可以在此处看到UiApp界面,但是如果尝试上传一些内容,则会收到一个错误消息,因为自从我将此答案实时发布以来,我已经删除了驱动器的folderId链接。如果您需要更多有关其运作方式或运作方式的解释,请告诉我。使用+和-按钮可将更多文件添加到上载中,或删除您不想包含的文件。这些文件可以是zip或任何文件类型,但是不包含用于上传后解压缩任何内容的代码。

//modified from script found here http://www.googleappsscript.org/miscellaneous/creating-form-elements-dynamically-using-google-apps-script-gas
//additional help from Serge to fix an error in my original code.

function doGet() {
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var formPanel = app.createFormPanel();
  var instructionsLabel = app.createLabel('Put your instructions here');
  var filesLabel = app.createLabel('Add Files to Upload');
  var table = app.createFlexTable().setId('table').setTag('0'); //Here tag will count the number of files
  //Write the header for the table
  var header = app.createLabel('File(s)');
  table.setWidget(0, 0, header);

  //Add the first row of files
  addFirstRow(app);
  var hidden = app.createHidden().setId('hiddenRowHolder').setName('hidden').setValue(table.getTag());
  //Add a button to submit the info
  var button = app.createSubmitButton('Upload File(s)');
  panel.add(instructionsLabel).add(filesLabel).add(table).add(hidden).add(button);
  formPanel.add(panel);
  app.add(formPanel);
  return app;
}

function addFirstRow(app){
  var table = app.getElementById('table');
  var tag = parseInt(table.getTag());
  Logger.log(tag);
  var numRows = tag+1;
  if(numRows >1){
    table.removeCell(numRows-1, 5);
    table.removeCell(numRows-1, 4);
  }
  Logger.log(numRows);
  var uploadWidget = app.createFileUpload();
  table.setWidget(numRows, 0, uploadWidget);
  table.setTag(numRows.toString());
  addButtons(app);
}

function addButtons(app){
  var table = app.getElementById('table');
  var numRows = parseInt(table.getTag());


  //Create handler to add/remove row
  var addRemoveRowHandler = app.createServerHandler('addRemoveRow');
  addRemoveRowHandler.addCallbackElement(table);

  //Add row button and handler
  var addRowBtn = app.createButton('+').setId('addOne').setTitle('Add row');
  table.setWidget(numRows, 4, addRowBtn);
  addRowBtn.addMouseUpHandler(addRemoveRowHandler);

  //remove row button and handler
  var removeRowBtn = app.createButton('-').setId('removeOne').setTitle('Remove row');
  table.setWidget(numRows, 5, removeRowBtn);
  removeRowBtn.addMouseUpHandler(addRemoveRowHandler);
}

function addRemoveRow(e){
  Logger.log(e.parameter.source);
  var app = UiApp.getActiveApplication();
  var table = app.getElementById('table');
  var tag = parseInt(e.parameter.table_tag);
  var hidden = app.getElementById('hiddenRowHolder');
  var source = e.parameter.source;
  //Logger.log(tag);
  if(source == 'addOne'){
    table.setTag(tag.toString());
    hidden.setValue(tag+1);
    addFirstRow(app);
  }
  else if(source == 'removeOne'){
    if(tag > 1){
      //Dcrement the tag by one
      var numRows = tag-1;
      table.removeRow(tag);
      //Set the new tag of the table
      table.setTag(numRows);
      hidden.setValue(numRows);
      //Add buttons in previous row
      addButtons(app); 
    }
  }
  return app;
}

function doPost(e) {
  var numFiles = Number(e.parameter.hidden);
  Logger.log(numFiles);
  for (var i = 1; i<=numFiles; i++){
    var fileBlob = e.parameter['file'+i];
    var newFile = DocsList.getFolderById("YOUR FILE FOLDER ID").createFile(fileBlob);//replace string with folder id where you want to place your files
  }
  var app = UiApp.getActiveApplication();
  var label = app.createLabel(numFiles +' file(s) uploaded successfully');
  app.add(label);
  return app;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用7za压缩的文件无法使用zip实用工具解压缩

来自分类Dev

Azure管道,自托管代理,我可以使用脚本中的zip实用工具吗?

来自分类Dev

Azure管道,自托管代理,我可以使用脚本中的zip实用工具吗?

来自分类Dev

使用JavaScript在Web浏览器中解压缩CSV文件

来自分类Dev

我可以使用“重命名”实用工具来简化此使用“查找”和“ Mv”的脚本吗?

来自分类Dev

我可以使用客户端(浏览器)IP作为cURL的代理吗?

来自分类Dev

有没有一种方法可以使用Javascript使用浏览器的本地gzip解压缩?

来自分类Dev

在node.js和javascript客户端中压缩/解压缩字符串

来自分类Dev

临时解压缩文件以在浏览器中查看内容

来自分类Dev

临时解压缩文件以在浏览器中查看内容

来自分类Dev

是否可以在Unix中安装特定版本的AWS CLI实用工具?

来自分类Dev

可以使用pr实用工具的页脚做些什么?

来自分类Dev

为什么我无法在SQL Server查询中运行bcp实用工具?

来自分类Dev

为什么通过客户端上的XSLT在Google Chrome浏览器中无法正确显示换行(&#10;)字符?

来自分类Dev

如何在Play 2.5.4中使用Guice注入实用工具类

来自分类Dev

Windows 10通用应用程序-我可以使用纯JavaScript在应用程序中解压缩文件吗?

来自分类Dev

我可以使用JavaScript在Chrome浏览器中显示HTML元素吗?

来自分类Dev

我可以让客户端在基于浏览器的播放器中流式传输来自Spotify的内容吗?

来自分类Dev

在服务器上压缩JSON消息并在客户端解压缩

来自分类Dev

在服务器上压缩JSON消息并在客户端解压缩

来自分类Dev

使用angular的http get方法时,浏览器侧不会自动解压缩gzip的json

来自分类Dev

UIAlertController实用工具类无法调用UITextField委托或目标,但可以在UIViewController中使用

来自分类Dev

对于基于服务器的应用程序,我需要在浏览器客户端上使用MVC模型的原因是什么?

来自分类Dev

对于基于服务器的应用程序,我需要在浏览器客户端上使用MVC模型的原因是什么?

来自分类Dev

我可以使用C#在浏览器的Google驱动器中查看文件吗

来自分类Dev

Rails数组可以“解压缩”吗?

来自分类Dev

解压缩错误,可以恢复吗?

来自分类Dev

无法使用Node.js中的Java实用工具在Node.js中创建Java日历对象

来自分类Dev

我可以在没有浏览器键的情况下使用javascript Google Map API吗?

Related 相关文章

  1. 1

    使用7za压缩的文件无法使用zip实用工具解压缩

  2. 2

    Azure管道,自托管代理,我可以使用脚本中的zip实用工具吗?

  3. 3

    Azure管道,自托管代理,我可以使用脚本中的zip实用工具吗?

  4. 4

    使用JavaScript在Web浏览器中解压缩CSV文件

  5. 5

    我可以使用“重命名”实用工具来简化此使用“查找”和“ Mv”的脚本吗?

  6. 6

    我可以使用客户端(浏览器)IP作为cURL的代理吗?

  7. 7

    有没有一种方法可以使用Javascript使用浏览器的本地gzip解压缩?

  8. 8

    在node.js和javascript客户端中压缩/解压缩字符串

  9. 9

    临时解压缩文件以在浏览器中查看内容

  10. 10

    临时解压缩文件以在浏览器中查看内容

  11. 11

    是否可以在Unix中安装特定版本的AWS CLI实用工具?

  12. 12

    可以使用pr实用工具的页脚做些什么?

  13. 13

    为什么我无法在SQL Server查询中运行bcp实用工具?

  14. 14

    为什么通过客户端上的XSLT在Google Chrome浏览器中无法正确显示换行(&#10;)字符?

  15. 15

    如何在Play 2.5.4中使用Guice注入实用工具类

  16. 16

    Windows 10通用应用程序-我可以使用纯JavaScript在应用程序中解压缩文件吗?

  17. 17

    我可以使用JavaScript在Chrome浏览器中显示HTML元素吗?

  18. 18

    我可以让客户端在基于浏览器的播放器中流式传输来自Spotify的内容吗?

  19. 19

    在服务器上压缩JSON消息并在客户端解压缩

  20. 20

    在服务器上压缩JSON消息并在客户端解压缩

  21. 21

    使用angular的http get方法时,浏览器侧不会自动解压缩gzip的json

  22. 22

    UIAlertController实用工具类无法调用UITextField委托或目标,但可以在UIViewController中使用

  23. 23

    对于基于服务器的应用程序,我需要在浏览器客户端上使用MVC模型的原因是什么?

  24. 24

    对于基于服务器的应用程序,我需要在浏览器客户端上使用MVC模型的原因是什么?

  25. 25

    我可以使用C#在浏览器的Google驱动器中查看文件吗

  26. 26

    Rails数组可以“解压缩”吗?

  27. 27

    解压缩错误,可以恢复吗?

  28. 28

    无法使用Node.js中的Java实用工具在Node.js中创建Java日历对象

  29. 29

    我可以在没有浏览器键的情况下使用javascript Google Map API吗?

热门标签

归档