- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 Python 中的请求模块将 Excel 文件从本地文件夹上传到 Sharepoint。该文件将出现在我的共享文档文件夹中,这是我想要的位置,但是当我尝试打开该文件时,我收到一条消息,提示“无法打开您选择的工作簿。该工作簿可能位于不支持的文件格式,或者它可能已损坏。您想尝试在 Excel 中打开此文件吗?”
我研究过这个问题,我发现的许多论坛都说一个常见的问题是文件中某处的 ^ 符号前有一个空格,但目前,出于测试目的,我只是试图上传一个完全空白的文件,里面什么也没有。
这是我的代码:
files = {'file': ('Test.xlsx', open('Test.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
myFile = requests.put('http://linkToMySharepoint/Test.xlsx', files=files, auth=auth)
我做错了什么?任何帮助或见解将不胜感激!
最佳答案
问题:问题是 Sharepoint 需要来自您请求的二进制数据。但是您正在发送某种批处理的数据。当您发出请求时,python-requests 库会自动添加到 header 中
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryNTIFeyYj307EY4HV
例如,尝试发送包含“fcvsdcvsd”文本的 .txt 文件。当您将此文件上传到您的 Sharepoint 站点时,您将收到不同的文件。这是我上传该文件时在 Sharepoint 文件存储库中得到的:
------WebKitFormBoundaryCGYE31vAG1tfvbzV
Content-Disposition: form-data; name="fileUpload1"; filename="testtest.txt"
Content-Type: text/plain
fcvsdcvsd
------WebKitFormBoundaryCGYE31vAG1tfvbzV--
在您的情况下,这些行也已添加到您的文件中。当 Excel 尝试打开该文件时,它会发现这些行并停止读取,因为文件已损坏。
解决方案:正如我之前所说,您需要在请求正文中以二进制形式发送文件。这是我的做法
headers = {"accept": "application/json;odata=verbose",
"X-RequestDigest": token,
"content-type": "application/x-www-urlencoded; charset=UTF-8"}
with open(local_path, "rb") as read_file:
content = read_file.read()
r = requests.post(url + "getFolderByServerRelativeUrl('" + location + "')/files/add(overwrite=true,url='" + filename + "')",
data=content, auth=auth, headers=headers)
如您所见,我在请求正文(“数据参数”)中将文件作为二进制(“内容”)发送,内容类型定义为“application/x-www-urlencoded;charset=UTF-8”
这是我发送的二进制文件
fcvsdcvsd
url 变量是您的 Sharepoint 服务器网关所在的 url(?)。location 变量是您要添加新文件的路径"X-RequestDigest": token 是一个可选参数,如果您有权访问您的 Sharepoint 服务器。
关于python - 使用 Python 上传到 Sharepoint 后 Excel 文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24145451/
我必须使用 powershell 将 csv 文件字段上传到 Sharepoint 2010 列表中。我在 Windows XP 机器上工作。 当我尝试添加 pssnapin 时 Add-PSSnap
我需要以编程方式与来自 SharePoint 外部的 SharePoint 文件夹、文件和列表进行交互。大多数教程侧重于在 SharePoint 本身内工作,或者至少在安装 SharePoint 的同
我正在将用户写入 SharePoint 列表。 我读过 SharePoint 用户字段中有一个这样的字符串:userId;#userLoginName 在写入用户字段时,我尝试以相同的方式进行格式化,
是否可以在“提供商托管应用程序”中使用 SharePoint 左侧导航栏。 SharePoint 网站“PlaceHolderLeftNavBar”上显示的导航。有没有像某些 ajax 调用或 RES
我正在编写一个使用客户端对象模型访问 SharePoint 站点的应用程序,并且我在代理服务器后面。 我打电话... ClientContext.ExecuteQuery() 并收到以下错误消息...
我在远程计算机上有一个 SharePoint 2013 服务器。 我安装了这个:https://www.microsoft.com/en-us/download/details.aspx?id=355
我对强大的应用程序还很陌生,并试图为我的以下场景确定最佳行动方案。我想根据每个新的月度文件确定哪些用户提交了列表 A,哪些用户没有提交。 我在我创建的 Sharepoint 上有一个列表(列表 A),
我有两个共享点列表。 List1 - 这包含所有用户并且主键为 UserIdList2 - 这包含所有类(class),主键为 CourseId 现在我想定义第三个列表,它将其主键作为复合键。List
sharepoint 公告列表中的过期项目会怎样?我可以得到所有项目包括过期项目吗? 最佳答案 它们本身没有任何变化 - 它们只是使用带过滤器的 View 从显示中过滤掉。 这是使用的过滤器:- 你可
我有一个由其他人编程的页面布局 PeopleSearchResults.aspx。 它包含以下标签 SharePoint refine people search results control .
嗨,我想知道我可以使用哪种布局来获取右上角的搜索框。我使用(欢迎页面)空白Web部件页面)作为页面布局,但是它缺少右上角的搜索框。 还有另一个问题:如何在“创建页面”页面的列表中添加自己的布局。谢谢。
我正在拼命寻找一种工具,允许我将旧版本的文档从 SharePoint 2003 复制到 SharePoint 2007 站点。 你知道有什么简单的(最好是免费的)工具可以做到这一点吗? 最佳答案 这对
我可以在现成的SharePoint Web部件(RSS Viewer和Data View Web部件)中使用几个不同的.NET XSLT函数。 ... More...
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我需要使用默认共享点过滤器 Web 部件传递的值。我看不到自定义共享点 Web 部件如何建立连接并获取数据。这可能吗? 已更新 提供者 WebPart 是默认的 SharePoint 列表过滤器 We
有一个关于同一主题的类似问题,但我正在添加这个问题并且之前的讨论已经解决。 这是原始问题的链接:Auto number column in SharePoint list 我现在试图找出在 MOSS
我们正在开发一个使用集成身份验证的 Intranet 门户,但站点的一些部分将暴露给不在域中的用户。对于这些用户,我们计划使用匿名访问。但是,我们整个应用程序的显示逻辑是基于登录到门户的用户,因此我们
市场上是否有任何工具可以有效分析 SharePoint 列表中的数据?我有一个客户希望分析和报告存储在 SharePoint 中的员工绩效数据。 最佳答案 Does SSRS give you any
我使用以下方法将文档上传到 sharepoint 文档库。 但是,在执行查询时 - 收到以下错误: 消息 = “远程服务器返回错误:(400) 错误请求。” 文件失败超过 1mb,所以我通过 shar
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
我是一名优秀的程序员,十分优秀!