【问题标题】:Creating a PHP page to accept a python HTTP POST创建 PHP 页面以接受 python HTTP POST
【发布时间】:2015-12-08 03:43:00
【问题描述】:

我正在尝试创建一个代理来收集数据,并希望通过 HTTP 将文件发布到运行 apache2 的网络服务器。我目前正在使用以下 python 脚本来推送文件。

import requests
txt = {'file': open('/tmp/pysrv01-20151207-212735')}
post = requests.post('someaddr', files=txt)

我知道一个简单的 php 页面可能会接受帖子并将文件存储在目录中。有什么简单轻量级的想法吗?也许这是一个错误的方法。

【问题讨论】:

  • POST 本身在谈到跨语言时并不是特别特别。为了在 PHP 中接受 POST 请求,您应该查看 $_POST,PHP 本身不应该关心 POST 请求来自哪里,但可能难以解析它收到的字符串。

标签: php python html


【解决方案1】:

PHP 有处理文件上传的文档。从这里开始阅读 http://php.net/manual/en/features.file-upload.php

您使用 $_FILE 变量来检测 Python 的 POST 请求中包含的文件。这是 PHP 文档中给出的示例 ...

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

【讨论】:

  • 感谢您为我指明正确的方向。但是,对于 $_FILES 中的某些键值,它失败了。做了一些更多的研究以使其发挥作用。 &lt;?php $name = $_FILES['file']['name']; $temp_name = $_FILES['file']['tmp_name']; if(isset($name)){ if(!empty($name)){ $location = '/var/www/html/uploads/'; if(move_uploaded_file($temp_name, $location.$name)){ echo 'uploaded'; } } } else { echo 'please uploaded'; } ?&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
相关资源
最近更新 更多