如何使用带有$ GLOBALS [" HTTP_RAW_POST_DATA"]的file_get_contents($ filename)来获取文件名?

时间:2014-05-19 06:36:06

标签: php

我正在使用file_put_contents($filename, $jpg)将我的jpg文件上传到某个位置。 如何将file_get_contents ($filename);($GLOBALS["HTTP_RAW_POST_DATA"])一起使用? 我正在尝试类似$jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; $img = $_GET["img"]; $filename = "applicantsPhotos/applicantPhoto". mktime(). ".jpg"; file_put_contents($filename, $jpg); echo file_get_contents ($filename); die;

的内容

但这不能很好地工作(neigther我得到文件名,不死就停止脚本)。我用错误的方法得到这个名字吗?

1 个答案:

答案 0 :(得分:2)

您应该知道什么是原始 POST数据: 在{strong>拆分 $_POST之后可以说$HTTP_RAW_POST_DATA和结果,PHP以我们在$_POST中看到的方式分割原始发布数据和格式

例如,如果$HTTP_RAW_POST_DATA看起来像这样:

key1=value1&key2=value2

然后$_POST看起来像这样:

$_POST = array(
     "key1" => "value1",
     "key2" => "value2",);

很可能您在*.jpg数据中添加了帖子中的其他内容(元素)。确保仅包含原始且有效的*.jpg图片信息,而不包括其他元素。

另请注意,$HTTP_RAW_POST_DATA不适用于表单类型enctype="multipart/form-data"

要获取原始发布数据:

<?php $postdata = file_get_contents("php://input"); ?>

php://input只读流,允许您从请求正文中读取原始数据。对于POST请求,最好使用php://input而不是$HTTP_RAW_POST_DATA,因为不依赖于 on special { {1}}指令。

更多信息hereherehere