연습 - 사용자 파일 업로드
다음은 앱에 업로드 기능을 추가하는 단계입니다.
업로드에 대한 브라우저 입력 요소 및 이벤트 처리기 표시
index.html 파일을 엽니다.
<ul id="downloadLinks"></ul>
줄을 찾아 바로 다음에 변경 내용을 추가합니다.<!-- Add for file upload --> <hr /> <input type="file" onchange="fileSelected(this);" /> <div id="uploadMessage"></div>
결과인
<div>
콘텐츠 블록은 다음과 같습니다.<div id="content" style="display: none;"> <h4>Welcome <span id="userName"></span></h4> <!-- Add for file download --> <hr /> <label>Files in your OneDrive root folder:</label> <ul id="downloadLinks"></ul> <!-- Add for file upload --> <hr /> <input type="file" onchange="fileSelected(this);" /> <div id="uploadMessage"></div> </div>
이제 코드 편집기에서 ui.js 파일을 열고 파일 끝에 다음 코드를 추가합니다.
function fileSelected(e) { displayUploadMessage(`Uploading ${e.files[0].name}...`); uploadFile(e.files[0]) .then((response) => { displayUploadMessage(`File ${response.name} of ${response.size} bytes uploaded`); displayFiles(); }); } function displayUploadMessage(message) { const messageElement = document.getElementById('uploadMessage'); messageElement.innerText = message; }
Microsoft Graph SDK를 사용하여 파일을 업로드하는 함수 추가
코드 편집기에서 graph.js 파일을 엽니다.
파일 맨 아래에 이 함수를 추가합니다.
async function uploadFile(file) { try { ensureScope('files.readwrite'); let options = { path: "/", fileName: file.name, rangeSize: 1024 * 1024 // must be a multiple of 320 KiB }; const uploadTask = await MicrosoftGraph.OneDriveLargeFileUploadTask .create(graphClient, file, options); const response = await uploadTask.upload(); console.log(`File ${response.name} of ${response.size} bytes uploaded`); return response; } catch (error) { console.error(error); } }
계속하기 전에 graph.js 파일을 저장해야 합니다.
앱 실행
브라우저를 새로 고칩니다. 로그인하면 업로드 버튼이 표시됩니다.
버튼을 선택하고 컴퓨터에서 파일을 선택합니다. 처음 업로드할 때 파일을 쓰고 읽을 수 있는 권한을 요청하는 새 동의 팝업 창이 표시될 수 있습니다. 파일 업로드가 시작되면 메시지가 나타납니다.
이 작업을 처음 수행하면 이제 파일을 쓰기를 요청하므로 다른 동의 팝업 창이 표시됩니다.
업로드가 완료되면 메시지에 업로드된 바이트 수가 표시되고 파일이 파일 목록에 표시됩니다.
터미널 창에서 Ctrl+C를 선택하여 Node.js 서버를 중지합니다.