Как проверить поле загрузки файла с помощью Javascript / скрипта приложения Google - PullRequest
1 голос
/ 06 августа 2020

Все

Я пока застрял на своем простом проекте. Я создал код веб-приложения, который позволяет другим загружать свои файлы pdf в мою папку Google, но проблема в том, что я не мог понять, кому устанавливать расширение файла c, чтобы другие не загружали только принятое расширение «pdf». внутри моего кода есть функция, которая должна предотвращать любые типы расширений, кроме 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>

code.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();
}

Ответы [ 2 ]

3 голосов
/ 06 августа 2020
  1. Используйте accept в <input> <input type="file" accept=".pdf"/>
  2. Добавить проверку на стороне сервера для расширения
function uploadFiles(filename, data) {
  if (!!filename.match('^.*\.(pdf|PDF)$')) return false; // or throw error
}
1 голос
/ 06 августа 2020

Похоже, вы пытаетесь сопоставить имя файла только с «.pdf» - вы можете попробовать использовать регулярное выражение для сопоставления только с концом файла.

const regex = "^.+\.pdf$"
if (!sender.match(regex)) {
    return sender.preventDefault();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...