2014-05-19 26 views
0

我正在使用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我越来越多的文件名,而不是停止脚本)。我是否使用错误的方法来获取名称?

+2

更准确地定义'不好'意味着什么?什么是错误(如果有的话)? – bodi0

+0

感谢您的评论。但“工作不正常”意味着我没有将文件名作为字符串存在。不死也行(脚本没有停止) –

回答

2

你应该知道究竟是什么原始POST数据: $_POST,可以说是和后面的结果分裂$HTTP_RAW_POST_DATA,PHP分割原始post数据和格式,我们看到它在$_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,因为它不依赖关于特殊php.ini指令的

更多信息here,herehere

+0

感谢您的帮助。但是有没有什么方法可以获取文件名。所以我可以将它传递给任何其他文件。 –

+0

其实我在上面提到flash中提到的PHP文件。并且我想将上传文件的名称存储/传递给其他文件 –

相关问题