【发布时间】:2016-08-24 18:18:02
【问题描述】:
目前有一个服务器设置为将 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,然后根据帖子名称下载帖子中的所有数据。
-
废话我编辑了你的评论而不是回复...
-
不,我删除了,对不起。
标签: c# php post file-transfer