Reputation: 355
I am copying files using PHP onto an Azure service. Is it possible to produce a link that will allow a user to automatically open this stored document using Office 365 online? Currently, the return URL downloads the stored document to a users local storage. Here is my PHP code which uses the Microsoft Azure PHP SDK.
require_once 'vendor/autoload.php';
use WindowsAzure\Common\ServicesBuilder;
use MicrosoftAzure\Storage\Common\ServiceException;
// Create blob REST proxy.
$connectionString="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
$content = fopen("demo.doc", "r");
$blob_name = "demo.doc";
try {
//Upload blob
$blobRestProxy->createBlockBlob("mycontainer", $blob_name, $content);
}
catch(ServiceException $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/library/azure/dd179439.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
Upvotes: 0
Views: 1251
Reputation: 14649
The Office 365 is not able to open the file which store on other place( not in Office 365) by default. However, you may try to use the WOPI protocol to integrate with Office Online. The WOPI protocol enables Office Online to access and change files that are stored in your service.
Another workaround is that you can consider upload the file to Office 365. And you can refer to the REST below to create/upload item to SharePoint online:
POST: https://graph.microsoft.com/v1.0/me/drive/root/children
authorization: bearer {token}
content-type: application/json
{
"name":"filename.docx",
"file":{}
}
PUT: https://graph.microsoft.com/v1.0/me/drive/root:/RESTFei.docx:/content
authorization: bearer {token}
Content-Type: application/msword
<@INCLUDE *C:\Users\username \Desktop\test.docx*@>
More detail about developing with Microsoft Graph, please refer to here.
Upvotes: 2