如何使用带有 C# 插件的模型驱动应用程序上功能区上的按钮下载文件?

问题描述 投票:0回答:1

我设法集成了代码,使我能够从插件中的 Dataverse 表下载文件,并且我可以在此文档上执行自动化任务

private static byte[] DownloadFile(IOrganizationService orgService, string entityName, Guid recordGuid, string fileAttributeName)
{
    var initializeFileBlocksDownloadRequest = new InitializeFileBlocksDownloadRequest
    {
        Target = new EntityReference(entityName, recordGuid), FileAttributeName = fileAttributeName
    };

    var initializeFileBlocksDownloadResponse = (InitializeFileBlocksDownloadResponse)orgService.Execute(initializeFileBlocksDownloadRequest);

    DownloadBlockRequest downloadBlockRequest = new DownloadBlockRequest
    {
        FileContinuationToken = initializeFileBlocksDownloadResponse.FileContinuationToken
    };

    var downloadBlockResponse = (DownloadBlockResponse)orgService.Execute(downloadBlockRequest);
            
    return downloadBlockResponse.Data;
}

但是在我完成自动化任务后,我希望将此文件下载到触发插件的人的本地下载目录,据我所知,您可以使用 File.WriteAllBytes(, downloadBlockResponse.Data); 但是它不起作用,是否有任何解决方法或使用插件下载文件的直接方法?

c# file plugins download dataverse
1个回答
0
投票

你不能。插件代码在服务器端运行。服务器无权访问用户的本地存储。如果它可以访问,这将是一个重大的安全问题。

但是,

InitializeFileBlocksDownloadRequest
DownloadBlockRequest
实际上可以从JavaScript调用。编写一个脚本,使用这些请求来获取数据,并且可以通过功能区按钮调用该脚本。

© www.soinside.com 2019 - 2024. All rights reserved.