簡體   English   中英

如何使用 Javascript/google App 腳本驗證文件上傳字段

[英]How to validate a file upload field using Javascript/ google App script

全部

我一直堅持我的簡單項目有一段時間了。 我創建了一個 web 應用程序代碼,允許其他人將他們的 pdf 文件上傳到我的 google 文件夾,但問題是我無法弄清楚誰來設置特定的文件擴展名,所以其他人不上傳只接受的擴展名“pdf”。 在我的代碼中,有一個 function 應該防止除 pdf 之外的任何類型的擴展,但它不起作用。

    <form>
        <input type="file" name="myFile" accept= "checkfile(sender);" id='file' >
        <br>
        <br>
        <input type="button" id="submitBtn" value="Upload Files">
        <label id="resp"></label>
    </form>
    <script>
      document.getElementById('submitBtn').addEventListener('click',
        function(e){
          google.script.run.withSuccessHandler(onSuccess).uploadFiles(this.parentNode)
        })
        
        function onSuccess(data){
          document.getElementById('resp').innerHTML = "File Uploaded to the path " +data;
          
          
          function checkfile(sender) {
    
   var element=  document.getElementById('file')
   if ( sender !== '.pdf') {
   
   return sender.preventDefault(); 
   } else {
   
   return true; 
   }
}
        }
       
    </script>

代碼.gs

 function doGet() {
  var html = HtmlService.createHtmlOutputFromFile('form');
  return html.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}


function uploadFiles(data)
{
 var file = data.myFile;
 var folder = DriveApp.getFolderById('...........');
 var createFile = folder.createFile(file);
 return createFile.getUrl();
}
  1. <input> <input type="file" accept=".pdf"/>中使用accept
  2. 為擴展添加服務器端驗證
function uploadFiles(filename, data) {
  if (!!filename.match('^.*\.(pdf|PDF)$')) return false; // or throw error
}

看起來您正在嘗試僅將文件名與“.pdf”匹配 - 您可以嘗試使用正則表達式僅匹配文件的末尾。

const regex = "^.+\.pdf$"
if (!sender.match(regex)) {
    return sender.preventDefault();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM