使用 OneDrive 文件选取器 JavaScript SDK 保存文件

注意: 此版本已被替换成 文件选取器 v7.2。 应使用最新版文件选取器 SDK 实现新集成。

本主题逐步介绍了如何将文件选取器 SDK 嵌入 JavaScript 应用,并使用它将文件保存到 OneDrive。

文件保存演示

1.添加对 SDK 的引用

若要打开文件,请在网页中添加以下引用,将 APP_ID 替换成 OneDrive 个人版和/或 OneDrive for Business 应用 ID。 若要同时使用这两种服务,可以同时添加两个 ID,并用逗号分隔。 可以将相同的应用 ID 用于文件打开和保存方案。

<script type="text/javascript" src="https://js.live.net/v6.0/OneDrive.js" id="onedrive-js" client-id="APP_ID"></script>

2.启动文件选取器

若要在 OneDrive 中保存文件,应用应提供以编程方式启动 OneDrive 文件选取器的按钮。 由于以下代码将在浏览器中启动弹出窗口,因此需要在显式用户操作期间调用,以免被弹出窗口阻止程序阻止。

OneDrive.save(...) 方法中指定选项,从而指定文件选取器的行为方式。

<script type="text/javascript">
  function launchOneDriveSaver(){
    var saverOptions = { file: "fileToUpload" /* ... */ };
    OneDrive.save(saverOptions);
  }
</script>

<input id="fileToUpload" name="fileToUpload" type="file" />
<button onclick="launchOneDriveSaver">Save to OneDrive</button>

注意: 使用此方法可以保存的文件的大小上限是 100MB。 若要上传更大的文件,请使用 将大文件上传到 OneDrive 下的 API。

文件选取器选项

可以提供包含控制文件选取器行为的参数的对象,指定文件选取器的行为方式。 此对象还包含文件选取器在完成时或遇到错误时所需的回调函数。

保存文件时,options 对象可以包含下列参数:

var saveOptions = {
  file: "inputFile", /* The id of a file type input element or a valid data URI string */
  fileName: "file.txt", /* Required if `saverOptions.file` is a data URI string */
  openInNewWindow: true,
  success: function() { /* upload is complete */ },
  progress: function(p) { /* upload is progressing */ },
  cancel: function() { /* upload was cancelled */ },
  error: function(e) { /* an error occurred */ }
}

saverOptions 对象具有以下属性:

参数名称 说明
file 必需。 file 参数的窗体输入元素 ID,或要上传的内容的数据 URI
fileName 如果 file 参数是数据 URI,此为必需参数。 如果 file 参数是文件类型输入元素的 ID 且未提供 fileName,将通过输入元素的名称属性推断文件名。
openInNewWindow 默认值为 true,这将打开弹出窗口为用户提供 OneDrive 文件选取体验。 如果值为 false,将在同一窗口中为用户提供 OneDrive 文件选取体验。
success 在文件上传到服务器完成时调用。
progress 在 0.0 到 100.0 之间的不同位置处调用,以指明上传进度。至少在 100.0 处调用一次。
cancel 在用户取消文件保存器时调用。
error 在服务器出错、用户配额不足、用户无权将文件上传到选定位置或用户未选择要上传的文件时调用。

注意:如果 openInNewWindowfalse必须 先在网页上对所有回调函数进行全局声明,然后再引用 SDK,这样可保证函数得到调用。 此外,回调函数(successprogresscancelerror)的值必须是经过全局定义的函数的字符串名称。