我在为Valence API中的 News 上传文件附件时遇到了一些问题。我正在使用 PHP,当我尝试发出发布请求时,该操作永远不会完成。我在命令行上运行它,所以我必须终止进程才能终止程序。
我的文件数据和详细信息(名称、类型和大小)存储在数据库中,我只使用一个调用来发布所有内容,即 JSON 格式的新闻和文件附件。我使用以下格式发布消息(如 API 文档中所述):
内容类型:多部分/混合;边界=e9e1c17c958e2a89a192bf5d3f7d1ffd 内容长度:46538
--e9e1c17c958e2a89a192bf5d3f7d1ffd 内容类型:应用程序/json
{"Title":"Some News","Body":{"Text":"这个</span>是一个非常</span>丰富多彩的标题</span>","Html":"这个</span>是一个非常</span>丰富多彩的标题</span>"},"StartDate":"2013-11-06T05:00:00.000Z","EndDate":"2013-11-30T05:00:00.000Z", "IsGlobal":false,"IsPublished":true,"ShowOnlyInCourseOfferings":false}
--e9e1c17c958e2a89a192bf5d3f7d1ffd 内容处置:表单数据;名称="FC.png"; 文件名="FC.png"
内容类型:图片/png
{} --e9e1c17c958e2a89a192bf5d3f7d1ffd--
我猜由于编码,我看不到文件内容。我将此消息中的内容长度计算为:JSON 数据的字符串长度 + 文件大小(以字节为单位)。
我非常具体的问题是,可以直接从数据库中发布文件,还是建议先将文件写入磁盘然后尝试发布。如果有人可以向我指出一个在线示例,我也将不胜感激,其中有一个使用 PHP 的预先存在的示例代码。
还有一件事。如果我不包括内容长度的文件大小(以字节为单位),那么除了文件附件之外它工作正常。它的大小为 29 字节,当我单击它时,它会以损坏的数据错误打开。
任何形式的帮助将不胜感激。谢谢。