我使用python请求模块对sharepoint执行多部分发布。文件(在本例中为microsoft pptx文件)已成功上载。但是,当我尝试打开上载的文件时,文件有问题。在
Powerpoint请求修复该文件,当我按下“修复”按钮时,该文件似乎正确打开(我没有发现丢失任何内容)。在
我看了一下请求头,注意到在firefox浏览器中发布的内容长度与通过脚本发布的内容长度不同。在
磁盘上的文件大小=17938612
我的脚本的内容长度=17938874
firefox的内容长度=17939026
我想我不知道为什么内容长度不同,我怀疑这是不是因为这个差异。在
当我使用我的脚本提交post请求时,我不会对数据进行编码并按如下方式准备post请求:
postheader.update({'Accept':'application/json; odata=verbose','Content-Type':'application/json; odata=verbose', 'X-RequestDigest':formdigestvalue, 'binaryStringRequestBody':'true'})
filetoupload = {'file':(filename, open(filename, 'rb'), 'application/vnd.openxmlformats-officedocument.presentationml.presentation')}
posturl = projectConfig.sharepointurl + "/_api/web/getfolderbyserverrelativeurl('Shared Documents/release_doc/"+project+"')/files/add(url='"+filename+"', overwrite='true')"
response = requests.post(posturl, headers=postheader, files=filetoupload, cookies=postcookies)
更新:
我看了一下我用脚本上传的文件,内容中还附加了以下标题:
^{pr2}$但是通过firefox上传的文件没有这些头文件。我想我需要调用一个sharepoint函数(如果有一个restapi可以这样做)来在文件上传后处理它,或者如果python requests
中有一个方法可以处理本文中提到的这些头:stackoverflow post
目前没有回答
相关问题 更多 >
编程相关推荐