使用 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 | 在服务器出错、用户配额不足、用户无权将文件上传到选定位置或用户未选择要上传的文件时调用。 |
注意:如果 openInNewWindow 为 false,必须 先在网页上对所有回调函数进行全局声明,然后再引用 SDK,这样可保证函数得到调用。 此外,回调函数(success、progress、cancel 和 error)的值必须是经过全局定义的函数的字符串名称。