变量sessionId通过URL传递。使用html / php脚本,它测试正常。假设URL为http://xxxx?sessionId=Sam,变量fileId为SamM.wav。但是当确切的脚本放入服务器时,保存的文件是M.wav而不是SamM.wav - 我错过了什么?以下是代码: 更新: PHP版本: PHP 5.4 PHP 5.5.22
<?php
$Id = $_GET["sessionId"] ;
$fileId = "$Id" . "M.wav";
$fp = fopen( "$fileId", 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp );
?>
答案 0 :(得分:0)
认为必须是:
<?php
$id = $_GET["sessionId"];
$fileId = $id . "M.wav";
$fp = fopen( $fileId, 'wb' );
fwrite( $fp, $GLOBALS['HTTP_RAW_POST_DATA'] );
fclose( $fp );
?>
我不知道你正在运行哪个版本的PHP但是&#34; $ GLOBALS [&#39; HTTP_RAW_POST_DATA&#39;]&#34;已弃用版本&#34; 5.6.0&#34;。
有关详细信息,请参阅:http://php.net/manual/en/reserved.variables.httprawpostdata.php
不是:http://xxxx?sessionId=Sam但是http://xxxx/?sessionId=Sam (我知道大多数浏览器会重定向你,但有些人会赢得
)答案 1 :(得分:0)
我的私有服务器上有这个,它运行正常:
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
$id = $_GET["sessionId"];
$fileId = $id . "M.wav";
$fp = fopen( "./writetest/" . $fileId, 'wb' );
if(is_resource($fp) === true) {
fwrite( $fp, 'test');
fclose( $fp );
} else {
echo "nope";
}
?>
我的ls表示:
[root@servername]# ls -l writetest/
total 4
-rw-r--r--. 1 **** **** 4 Mar 25 21:11 testM.wav