Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用一个输入字段通过Html表单对象上载多个文件_Javascript_Html_Dom_Google Apps Script - Fatal编程技术网

Javascript 如何使用一个输入字段通过Html表单对象上载多个文件

Javascript 如何使用一个输入字段通过Html表单对象上载多个文件,javascript,html,dom,google-apps-script,Javascript,Html,Dom,Google Apps Script,我创建了一个带有文件输入字段和多属性激活的Html表单 <input type="file" name="documents" multiple size="11"> 输出结果是,如果总文件上载量为3,则我只获得三次上载的第一个文件。 表示仅上载提交表单时选择的第一个文件 我想将所有选定的文件上载到同一文件夹中的驱动器 提前感谢您正在执行这3次google.script.run.withSuccessHandler(update).uploadFile(formObject)所以您

我创建了一个带有文件输入字段和多属性激活的Html表单

<input type="file" name="documents" multiple size="11">
输出结果是,如果总文件上载量为3,则我只获得三次上载的第一个文件。 表示仅上载提交表单时选择的第一个文件

我想将所有选定的文件上载到同一文件夹中的驱动器


提前感谢

您正在执行这3次
google.script.run.withSuccessHandler(update).uploadFile(formObject)所以您可能需要传入其他内容
.files
具有文件对象,您可能可以传入这些对象。通过将它们分配给另一个输入的
.value
,您似乎将它们视为字符串。。那不可能是对的。尝试
google.script.run.withSuccessHandler(update).uploadFile(docs.files[i])我已经删除了那个价值线,因为它只是一个点击和尝试,但我得到了与您所说的相同的结果。而且,我试着按照您所说的方式调用该方法,但谷歌文档说明了一切。我们不能传递除Number、Boolean、string、null或form对象以外的参数(如果它是函数的唯一参数)。我认为这可能会有所帮助:使用文件读取器读取文件并传递该文件。这使用了
uploadfiletogologledrive
,但我认为它类似于
uploadFile
。是的,这种方法也只能上传一个文件,因为我们只能通过一个html表单将一个读卡器对象发送到app script web app。我可以问一下您想要上传的文件的大小吗?因为,如果一个文件超过50MB,则需要使用可恢复上载。如果要一次上载的多个文件的总大小小于50MB,则可以立即将它们发送到GAS端,而无需使用for循环。
<script>
    function handleFormSubmit(formObject) {
                var div = document.getElementById('output');
                var docs = document.getElementById('myFile');
                var firstName = document.getElementById('first').value;
                var lastName = document.getElementById('last').value;
                var hid = document.getElementById("hidden");

                for(i=0;i< docs.files.length ; i++){
                    div.innerHTML = hid+hid.file+"<h3>Please do not refresh or close the page. Your files are uploading...</h3>";
                    google.script.run.withSuccessHandler(update).uploadFile(formObject);
                    docs
                }
</script>
function uploadFile(formObject) {
  Logger.log("called");
  var firstName=formObject.firstName;
  var lastName=formObject.lastName;
  var file = formObject.documents;
  Logger.log(file);
  var root = DriveApp.getRootFolder();
  var folder,url;
  if(root.getFoldersByName("Application Documents - Clients").hasNext()){
    folder = root.getFoldersByName("Application Documents - Clients").next();
  } else{
    folder = root.createFolder("Application Documents - Clients");
  }
  if(folder.getFoldersByName(firstName+" "+lastName).hasNext()){
    url = folder.getFoldersByName(firstName+" "+lastName).next().createFile(file).getUrl();
  } else {
    url = folder.createFolder(firstName+" "+lastName).createFile(file).getUrl();
  }
  return url;
}