Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sharepoint Framework:如何创建<;img>;包含MSGraph photo/$value响应BLOB的标记_Javascript_Sharepoint Online_Spfx - Fatal编程技术网

Javascript Sharepoint Framework:如何创建<;img>;包含MSGraph photo/$value响应BLOB的标记

Javascript Sharepoint Framework:如何创建<;img>;包含MSGraph photo/$value响应BLOB的标记,javascript,sharepoint-online,spfx,Javascript,Sharepoint Online,Spfx,我正在创建一个Sharepoint应用程序(使用Shrepoint框架),但无法检索调用MSGraph“/me/photo/$value”api时返回的Phto BLOB。我不知道如何将BLOB转换为Base64字符串。我已经做了很多尝试,我正在写一篇文章来解释我试图实现的目标: this.context.msGraphClientFactory .getClient() 。然后((客户端:MSGraphClient):void=>{ client.api('/me/photo/$value')

我正在创建一个Sharepoint应用程序(使用Shrepoint框架),但无法检索调用MSGraph“/me/photo/$value”api时返回的Phto BLOB。我不知道如何将BLOB转换为Base64字符串。我已经做了很多尝试,我正在写一篇文章来解释我试图实现的目标:

this.context.msGraphClientFactory
.getClient()
。然后((客户端:MSGraphClient):void=>{
client.api('/me/photo/$value').get((错误,响应:any,rawResponse?:any)=>{
const blobUrl=window.URL.createObjectURL(rawResponse.body);
document.getElementById(“myPhoto”).setAttribute(“src”,blobUrl);
});
});

此代码失败,因为creteObjectURL已被弃用。 MSGraph调用正常,但我无法处理响应。有什么建议吗?

接受blob作为其参数。您可以得到如下所示的blob响应:

client.api('/me/photo/$value').responseType('blob').
bloburl将类似于:

blob:https://xxxx-app34cc3db2636944a5b0b3abea9a6ae5b9.sharepoint.com/e007d253-f911-4722-86a8-ecdd77864696
您还可以通过以下方式将blob转换为base64:

此外,您还可以使用pnpjs访问ms graph,它可以直接返回blob数据:

致以最良好的祝愿, 江贝克