演習 - ユーザー ファイルのアップロード

完了

アプリにアップロード機能を追加する手順は次のとおりです。

アップロード用のブラウザーの入力要素とイベント ハンドラーを表示する

  1. index.html ファイルを開きます。

  2. <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>
    
  3. 次に、コード エディターで 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 を使用してファイルをアップロードする関数を追加する

  1. コード エディターで、graph.js ファイルを開きます。

  2. ファイルの下部に、この関数を追加します:

    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);
      }
    }
    
  3. 続行する前に graph.js ファイルを必ず保存してください。

アプリを実行する

ブラウザーを更新します。 サインインすると、アップロード ボタンが表示されます。

ブラウザーの [ファイル アップロード] ボタンを示すスクリーンショット。

ボタンを選択し、コンピューターからファイルを選択します。 初めてアップロードすると、ファイルの書き込みと読み取りのアクセス許可を要求する、新しい同意のポップアップ ウィンドウが表示されるのに気付くでしょう。 ファイルのアップロードが開始すると、メッセージが表示されます。

アップロードするファイルの選択を示すスクリーンショット。

初めてこの操作を行う場合は、ファイルの書き込みが要求されたために、別の同意のポップアップ ウィンドウが表示されます。

ファイルのアップロードへの同意を示すスクリーンショット。

アップロードが完了すると、メッセージにアップロードされたバイト数が表示され、ファイルのリストにファイルが表示されます。

アップロード ボタン付きのファイル リストを示すスクリーンショット。

ターミナル ウィンドウで CTRL+C を押し、Node.js サーバーを停止します。