我正在使用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我得到文件名,不死就停止脚本)。我用错误的方法得到这个名字吗?
答案 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}}指令。