구글폼에서 파일 업로드 기능을 사용하는 경우, 자동으로 입력한 사람 (지원자)의 정보를 기반으로 폴더링을 해주었으면 할 때가 있습니다. 이렇게 구분해 놓지 않으면 나중에 파일들이 분산되어 있어 한눈에 보기가 어렵기 때문인데요. 지원자의 이름과 전화번호를 조합해서 폴더를 생성하는 간단한 코드를 짜보았습니다.
구글폼에서 파입 업로드 기능 활성화하는 하기.

새로운 질문을 만들고 우측의 ⋮기호를 눌러서 ‘파일 업로드’를 선택해 주세요.

계속을 눌러 진행합니다. 파일 업로드 기능을 활성화 하고 나면 구글폼은 구글계정이 있는 혹은 로그인한 사용자만 이용이 가능해지니 이 점 유의하세요.

파일업로드 기능을 활성화 하고 나면 최대 파일 크기와 업로드 받을 총 용량을 정하실 수 있습니다. 해당 용량이 넘어가거나 구글폼 소유자의 드라이브가 모두 차고 나면 더 이상 제출을 받기 어려우니 이 점은 참고하셔야 합니다.
우측 하단의 ‘폴더 보기’를 눌러보면 해당 파일을 업로드 했을 때 자료를 받는 폴더 주소가 나오는데요. 오늘 가장 중요한 내용이니 꼭 잘 해당 링크를 복사 해놓습니다.
스프레드시트 > Apps script 활성화
스프레드시트에서 앱스크립트를 연결해주고 다음 코드 뼈대를 고쳐서 상황에 맞게 사용해주시면 됩니다.
function onFormSubmit(e) {
var folderName = e.values[folderNameColumn];
var phone = e.values[phoneColumn];
var folderName = folderName + " - " + phone;
var parentFolder = DriveApp.getFolderById('');
var folders = parentFolder.getFoldersByName(folderName);
var applicantFolder;
if (folders.hasNext()) {
applicantFolder = folders.next();
} else {
applicantFolder = parentFolder.createFolder(folderName);
}
var driveLinks = e.values[drivelink].split(',');
console.log(driveLinks.length)
for (var i = 0; i < driveLinks.length; i++) {
var fileId = extractFileIdFromLink(driveLinks[i]);
if (fileId) {
var file = DriveApp.getFileById(fileId);
var copiedFile = file.makeCopy(applicantFolder);
}
}
}
//file ID 추출 코드를 작성해주세요.
function extractFileIdFromLink(link) {
.
.
.
}
풀버전 코드는 아래 링크를 통해서 확인하실 수 있어요.
구글 독스 링크가 자동 생성됩니다. 잠시만 기다려 주세요.
이후 트리거 설정까지 해주셔야 합니다.
트리거 설정 방법은 똑같이 앱스크립트로 넘어가서 '트리거' 트리거 설정 '양식 제출시' onFormSubmit 함수가 실행되도록 만들어 주세요.
