我正在运行一个小代码来上传SharePoint 2016文档库中的文件并更改元数据。
有时(但实际上经常(我的代码返回错误"在可查询 [404] 中生成 HttpClient 请求时出错",并显示消息"项目不存在。它可能已被其他用户删除。
这是我的代码:
pnp.sp.web.getFolderByServerRelativeUrl("/sites/mysite/ConfigDL").files.add(fileOgg.name, fileOgg, true).then(function (data) {
var RelativeUrls="/sites/mysite/ConfigDL/"+fileOgg.name;
//Retrive Document which is uploaded. Start
pnp.sp.web.getFolderByServerRelativeUrl(RelativeUrls).getItem().then(item => {
//update start Below Call to Doc List will update the Row baseed on Item.ID
pnp.sp.web.lists.getByTitle("ConfigDL").items.getById(item.ID).update({
Number: ""+number+""
}).then(r => {
alert(file.name + " upload successfully!");
});//update end
}); //Retrive Doc Info End
}); //Upload Document End
我不明白为什么此错误随机发生以及我的代码有什么问题。有什么建议吗?
我的 SharePoint
Online 中的示例测试代码,它应该与 SharePoint 2016 相同。
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pnp-pnpjs/1.3.4/pnpjs.es5.umd.bundle.min.js"></script>
<script type="text/javascript">
function UpLoadFile() {
var input = document.getElementById("thefileinput");
var fileOgg = input.files[0];
pnp.sp.web.getFolderByServerRelativeUrl("/sites/lee/MyDoc3").files.add(fileOgg.name, fileOgg, true).then(function (data) {
var RelativeUrls = "/sites/lee/MyDoc3/" + fileOgg.name;
//Retrive Document which is uploaded. Start
pnp.sp.web.getFolderByServerRelativeUrl(RelativeUrls).getItem().then(item => {
//update start Below Call to Doc List will update the Row baseed on Item.ID
pnp.sp.web.lists.getByTitle("MyDoc3").items.getById(item.ID).update({
Test: "testvalue"
}).then(r => {
alert(fileOgg.name + " upload successfully!");
});//update end
}); //Retrive Doc Info End
}); //Upload Document End
//pnp.sp.web.getFolderByServerRelativeUrl("/sites/lee/Shared Documents/asd").getItem().then(item => {
// console.log(item);
//});
}
</script>
<input id="thefileinput" type="file" />
<br />
<input id="Button1" onclick="UpLoadFile()" type="button" value="Upload" />