c# - 检测传入的 PHP 帖子,保存文件

标签 c# php post file-transfer

目前有一个服务器设置为将 zlib 文件发布到另一个服务器:(这是相应的 C# 代码)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://server-ip-here/postlistener?filename=filename.zlib");
req.UseNagleAlgorithm = true;
req.AllowWriteStreamBuffering = true;
req.Method = "POST";
req.Accept = "application/xml";
req.ServicePoint.Expect100Continue = false;
System.Net.ServicePointManager.CheckCertificateRevocationList = false;
req.Proxy = new WebProxy();

filename = "filename.dat";
byte[] postData = File.ReadAllBytes(filename);
Stream stream = req.GetRequestStream();
stream.Write(postData, 0, postData.Length);
stream.Flush();
stream.Close();

req.BeginGetResponse(new AsyncCallback(responseHandler), this);

需要在不同的服务器上编写一些php,以便当这个特定的IP向我发布内容时(也称为服务器192。向我的服务器IP发布某些内容或其他帖子时)我需要能够

  • a) 检测到正在发出 POST
  • b) 检查是否由白名单 IP 发起
  • c) 下载 POST 数据(应该是二进制的)并将其保存为帖子中的名称(需要接受 URL 中的文件名:.www.blah.com/upload?filename=somefile_1234_12389126496129684790.zlib)

然而,对于 PHP 来说,这是我迄今为止的研究告诉我的:

  • a) 使用此代码查看请求是否为帖子

    if '($_SERVER['REQUEST_METHOD'] === 'POST') { // … }

  • b) 使用:$_SERVER['HTTP_REFERER']

  • c) 没有真正的想法。

也不完全确定如何将这些部分串在一起。我有什么想法可以监听从该 IP 发送的 POST,然后下载正在发布的文件吗?

也真的不知道如何设置我的 php 页面才能做到:

/postlistener?filename=filename.zlib

我相信 poSTListener 部分是我的页面,不知何故该页面也应该获取一个文件? TH=这是我的理解,已经为公司其他人接管了这个项目,当然没有任何文档可以配合。任何帮助都会有很大帮助,谢谢。

最佳答案

这将监听任何 POST 数据,然后将 post 变量名称放入数组中。

    <?

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     if($_SERVER['REMOTE_ADDR'] == '*IPADDRESS*') {
          $posts = array();
          foreach ($_POST as $key => $value){
               echo "{$key} = {$value}\r\n";
               array_push($posts,$key);
          }
      }
}

print_r($posts);
?>

之后,您可以循环遍历 $posts 数组并下载所有内容。

关于c# - 检测传入的 PHP 帖子,保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940838/

相关文章:

c# - MEF - 如果一个插件失败则修改执行

c# - AutoMapper - 将字符串转换为枚举

c# - 如何将许多不同的线程放入 wait() 并能够使用 signalAll() 唤醒它们?

c# - VS 2012 中缺少实体数据模型

php - php中mysqli字符串中的多词匹配

oracle - PL/SQL : UTL_HTTP POST with UTF8 string results in broken characters

php - 显示带有父类别的类别表

php - 如何为 Laravel 安装所有必需的 PHP 扩展?

html - System.Web.Mvc.Html.MvcForm Razor 显示 HTML

javascript - 为什么 `$.post` 只有在 `alert()` 出现在它之后才有效?