当文件名中有#符号时,Sharepoint REST API GetFileByServerRelativeUrl
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当文件名中有#符号时,Sharepoint REST API GetFileByServerRelativeUrl相关的知识,希望对你有一定的参考价值。
当文件名中有#符号时,我在使用REST API从Sharepoint获取文件时遇到问题,我将其转义为%23,但响应是找不到文件(404)。看:https://dev.office.com/blogs/upcoming-changes-to-sharepoint-and-onedrive-for-business-apis-to-support-and-in-file-names
并且他们解释说GetFileByServerRelativeUrl API不支持#和%符号,但是没有解释REST API中如何使用文件名中包含#的文件。
谢谢
答案
事实上,即使微软已经有introduced a support for special characters,当文件名包含SP.Web.getFileByServerRelativeUrl
method字符时#
失败(无论#
是否被转义为%23
)
但您可以考虑使用以下端点来检索文件属性:
Url: http://<sitecollection>/<site>/_api/web/folders/getbyurl(folderrelativeurl)/files/getByUrl(url)
Method: GET
例如:
var folderUrl = "Shared Documents";
var fileName = "Guide #123.docx";
var requestUrl = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/folders/getbyurl('${encodeURIComponent(folderUrl)}')/files/getByUrl('${encodeURIComponent(fileName)}')`;
$.getJSON(requestUrl)
.then(function(data){
console.log(data.Name);
})
.fail(function(error){
console.log(error.responseText);
});
以上是关于当文件名中有#符号时,Sharepoint REST API GetFileByServerRelativeUrl的主要内容,如果未能解决你的问题,请参考以下文章
当代码编译良好时,Resharper“无法解析符号”[重复]
将 Excel 2007 中的文本写入 Sharepoint 站点上的 .txt 文件会导致运行时错误“76”找不到路径