HTTP 文件 post - 从哪里开始

HTTP file post - where to begin

我正在使用 cURL 从供应商处订购产品。我可以选择通过电子邮件接收订单,相当直接,或通过 HTTP。我想使用 HTTP 传递方法将文件传递到我的网络服务器上的目录中。我已要求供应商告诉我更多关于 HTTP 的要求,但他们无法提供细节。这表明它可以完全由我来设置,或者他们不会提供我需要的信息。我向他们询问了其他人为 HTTP 参数提供的示例,他们给了我一些示例。显然,大多数人都将 URL 指定为文件级别,而不仅仅是目录级别。例如。 http://www.domain.co.uk/directory/listenLandmark.asmx 或 .aspx 或 .ashx。还有一些 .php 很好,因为那是我想要使用的。但是,有些只是给出了目录级别的参数。

我想如果我使用 php 文件,我将能够处理交付的文件,而不必手动检查是否有任何文件。

有人能告诉我我需要做什么才能开始吗?供应商在尝试 send/post 向我提交文件时出现 500 服务器错误。我曾尝试更改目录的权限以允许 public 读取、写入和执行,但这没有任何改变,而且可能是非常糟糕的做法 (??)。

如果有人能在正确的方向上快速推动我,我将不胜感激(或者我是否需要供应商提供更多信息才能开始)。

我不确定根据你的描述,但如果你的想法是你网站上的 url 他们正在进行 http 调用是你希望他们存储文件或类似内容的地方那,那几乎肯定不是它工作的预期方式。

话虽这么说...我不知道您使用的是什么服务,也不知道他们打算如何运作。但是根据您的描述,听起来他们正在使用 webhook 或以类似的方式连接。我猜他们要么使用他们需要发送给您的文件的所有数据进行 http post 调用,要么使用您可以下载的 URL 列表进行 http 调用文件来自.

由于他们无法为您提供任何文档(顺便说一句,这是一个巨大的危险信号),如果我是您,我会首先找出 URL 他们试图攻击您网站上的内容.一旦你发现了这一点,我就会添加一堆日志记录来查看 headers、post 数据以及它们发送的任何查询字符串。一旦你有了这些数据,你应该对他们如何尝试与你的网站进行交互有一个更好的了解,并且能够制定一个游戏计划,说明你将如何使用这些数据来做你需要做的任何事情。

希望对你有所帮助

编辑:(添加一些示例日志记录代码)

您可以这样做来记录您的 headers、获取和 post 数据以及任何文件上传。

<?php
$data = array("headers" => headers_list(), "post" => $_POST, "get" => $_GET, "file" => $_FILES);
$file = "/path/to/write/file.log.txt";
file_put_contents($file, json_encode($data));
?>

然后它 json 对所有数据进行编码(如果您愿意,可以用不同的方式将其全部转换为字符串),并将其记录到您想要的任何文件中。如果您设置 $file = "debug.txt" ,它只会记录到与 php 文件相同的目录,或者如果您愿意,您可以告诉它转到特定目录。然后您只需分析数据并查看 what/where 他们正在发送数据。