当使用python脚本上载时,Sharepoint file upload呈现部分损坏的文件

2024-09-27 21:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python请求模块对sharepoint执行多部分发布。文件(在本例中为microsoft pptx文件)已成功上载。但是,当我尝试打开上载的文件时,文件有问题。在

error warning

repair warning

Powerpoint请求修复该文件,当我按下“修复”按钮时,该文件似乎正确打开(我没有发现丢失任何内容)。在

我看了一下请求头,注意到在firefox浏览器中发布的内容长度与通过脚本发布的内容长度不同。在

以下是firefox提交的邮件头: firefox request headers

以下是我的脚本提交的标题: script request headers

磁盘上的文件大小=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


Tags: 文件脚本jsontrue标题内容verboseapplication

热门问题