javascript - 无法通过 appscript webapp 中的 HTML 表单上传大文件
问题描述
我无法使用 appscript 通过 HTML 表单将大小为 177 MB 的文件上传到谷歌驱动器。它没有显示任何错误。但浏览器上传状态为 0%。
我正在使用以下代码在我的 appscript 文件中上传。
以下是我的 Appscript 代码
function uploadFile(e) {
var link=[],file_extension=[];
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Drawing Register");
for(var j in e){
if((j=="urlLink") && (e["urlLink"]!=="")){
var fileId=getIdFromUrl(e["urlLink"]);
var type=DriveApp.getFileById(fileId).getMimeType();//to find whether if its a google document/spreadsheet
var gtype=type.substring(type.lastIndexOf(".")+1);
file_extension.push(gtype);
link.push(e["urlLink"]);
continue;
}
for(var s=0;s<e[j].length;s++){
var fileImage =e[j][s];
var folder = DriveApp.getFolderById(Document_Folder);
var image=folder.createFile(fileImage);
var fileName =image.getName();
if(fileName=="Untitled"){
DriveApp.getFileById(image.getId()).setTrashed(true);
}
else{
var ext=fileName.substring(fileName.lastIndexOf(".")+1); // finding extension of file uploaded
link.push(image.getUrl());
file_extension.push(ext);
}
}
}
var response = {
'link':link,
'extension':file_extension,
}
return response;
以下是我的javascript代码
function addDrawing(val){
t=1;
changedFieldValues=[];
var html="";
if(val!=undefined){
revisedDrawing=true;//true if selected row needs to be uploaded with revised drawings
revisedDrawingRow=val;//row no
}
html+='<h3 class="modal-head-color text-center">Add Drawings Or Documents</h3><form onsubmit="loadingModal();google.script.run.withSuccessHandler(onSuccessUploadDrawing).uploadFile(this);return false">';
//-------------------------drawing--------------------
for(var k=1;k<5;k++){
html+='<div class="form-group">';
if(k==1){
html+='<label><strong>Upload pdf version of file</strong></label>';
html+='<input type="file" class="form-control" accept="application/pdf" name="myImage" required />';
html+='</div>';
continue;
}
if(k==2){
html+='<label><strong>If it is a google document,paste the link below</strong></label>';
html+='<input type="url" class="form-control" name="urlLink"/>';
html+='</div>';
continue;
}
html+='<label>Upload Original File '+t+'(if applicable)</label>';
html+='<input type="file" class="form-control" id="file'+t+'" name="myImage" />';
html+='</div>';
t++;
}
html+='<div id="uploadFile">';//for adding upload file boxes dynamically
html+='</div>';
html+='<button type="button" class="btn-sm btn-info" onclick="appendUploadBox();">+</button>';
html+='<br><input type="submit" class="btn btn-purple btn-block"/>';
html+='</form>';
modalTxt.innerHTML=html;
modal.style.display = "block";
}
如果有人有任何想法,请分享。
解决方案
推荐阅读
- javascript - 获取已调用静态函数的类的名称
- c# - 如何将字符串列表/集合绑定到 WPF 中数据网格中列的行?
- java - 用空格和可选引号分隔的 csv 文件的正则表达式
- google-sheets-query - Google 表格 - 如何查询自定义日期范围?
- python - 按多列对数据框进行分组
- android - 自弃用以来如何在 2019 年实施 Places AutoCompleteFragment
- c - 我应该在哪里执行包含#include 的代码
和 xil_printf? - java - 如何暂停观察服务以便我可以更新文件,然后重新启动
- sage - 如何将生成器变成列表?
- javascript - PrimeNG 表体不显示数据