通过JavaScript /网络应用程序在设备上指挥OneDrive
是否可以从网站上将OneDrive导入用户设备(iPad)以捕获照片并将其存储在特定文件夹中?是否可以将OneDrive引导到用户的设备上以相同的方式创建文件夹?通过JavaScript /网络应用程序在设备上指挥OneDrive
用例基本上我们希望Web应用程序控制工作流程,但将照片捕获和异步上传的照片外包给OneDrive。但是我们知道照片的位置以及它们的名称,因此我们可以在他们完成上传并在云中提供后,将它们下载到我们的服务器上。
对于从手机访问手机的摄像头,你可以使用输入标签如下:
<input type="file" accept="image/*" capture="camera">
现在要上传的文件,你可以使用OneDrive JS SDK是这样的:
<script type="text/javascript" src="https://js.live.net/v7.2/OneDrive.js"></script>
<script type="text/javascript">
function launchSaveToOneDrive() {
var odOptions = { /* ... specify the desired options ... */ };
OneDrive.save(odOptions);
}
</script>
<input type="file" id="fileUploadControl" name="fileUploadControl" accept="image/*" capture="camera">
<button onclick="launchSaveToOneDrive">Save to OneDrive</button>
其中odOptions会看起来像这样:
var odOptions = {
clientId: "INSERT-APP-ID-HERE",
action: "save",
sourceInputElementId: "fileUploadControl",
sourceUri: "",
fileName: "file.txt",
openInNewWindow: true,
advanced: {},
success: function(files) { /* success handler */ },
progress: function(p) { /* progress handler */ },
cancel: function() { /* cancel handler */ },
error: function(e) { /* error handler */ }
}
您的成功将回应将具有OneDriv的URL上传的文件将作为参数传递给成功回调。
{
"value": [
{
"id": "123456",
"name": "document1.docx",
"size": 12340,
"@content.downloadUrl": "https://contoso-my.sharepoint.com/download.aspx?guid=1231231231a",
"webUrl": "https://cotoso-my.sharepoint.com/personal/user_contoso_com/documents/document1.docx",
"thumbnails": [
{
"id": "0",
"small": { "url": "https://sn3302files.onedrive.live.com/..." },
"medium": { "url": "https://sn3302files.onedrive.live.com/..." },
"large": { "url": "https://sn3302files.onedrive.live.com/..." }
}
]
}
]
}
更多请见:https://docs.microsoft.com/en-us/onedrive/developer/controls/file-pickers/js-v72/save-file)
嗨,这个解决方案使用网站上传文件。我希望将该责任转移到用户手机上的OneDrive(例如Dropbox的相机上传)。这样用户就可以拍照并且网站知道在OneDrive上的位置(一旦上传),但用户可以关闭网站,并且上传将由OneDrive在设备上在后台完成。 – Dave
所以你想用iPad的相机拍摄一张照片,并希望把它上传到一个驱动器。你想要吗? – arunjos007
这可能是不可行的,因为它是一个跨浏览器/设备的想法,但离线HTML5应用程序和增加浏览器对设备服务(相机,地理定位)的支持,我想我会问。我想要做的是使用网络浏览器来请求拍摄并存储在设备上的照片,并且设备上的OneDrive负责将设备上的文件同步到云端,并将其转换为网站知晓的OneDrive文件夹。 – Dave