Я копирую файлы с помощью PHP в службу Azure. Можно ли создать ссылку, которая позволит пользователю автоматически открывать этот сохраненный документ с помощью Office 365 онлайн? В настоящее время обратный URL-адрес загружает сохраненный документ в локальное хранилище пользователя. Вот мой PHP-код, который использует 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 />";
}
Office 365 по умолчанию не может открыть файл, который хранится в другом месте (кроме Office 365). Тем не менее, вы можете попробовать использовать WOPI протокол для интеграции с Office Online. Протокол WOPI позволяет Office Online получать доступ и изменять файлы, хранящиеся в вашей службе.
Другим обходным решением является возможность загрузки файла в Office 365. И вы можете обратиться к REST ниже, чтобы создать / загрузить элемент в SharePoint онлайн:
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*@>
Подробнее о разработке с Microsoft Graph, пожалуйста, обратитесь к Вот.
Других решений пока нет …