Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php从传入的http POST重命名文件_Php - Fatal编程技术网

使用php从传入的http POST重命名文件

使用php从传入的http POST重命名文件,php,Php,我正在尝试重命名通过http POST接受的文件。请参阅代码: <?php $xmlData = fopen('php://input' , 'rb'); while (!feof($xmlData)) { $xmlString .= fread($xmlData, 4096); } fclose($xmlData); file_put_contents('temp/message' . date('m-d-y') . '-' . time() . '.xml', $xmlString,

我正在尝试重命名通过http POST接受的文件。请参阅代码:

<?php
$xmlData = fopen('php://input' , 'rb');
while (!feof($xmlData)) { $xmlString .= fread($xmlData, 4096); }
fclose($xmlData);

file_put_contents('temp/message' . date('m-d-y') . '-' . time() . '.xml', $xmlString, FILE_APPEND);

$xml = new SimpleXMLElement($xmlString);

$id = trim($xml->MSG->ID);
$receiver = trim($xml->MSG->RECEIVER);
$message = trim($xml->MSG->MESSAGE);
$sender = trim($xml->MSG->SENDER);
$binary = trim($xml->MSG->BINARY);
$sent = trim($xml->MSG->SENT);

foreach ($xml->{'line-items'}->{'line-item'} as $lineItem) {
  array_push($messageTitles, trim($lineItem->title));
}

header('HTTP/1.0 200 OK');
exit();
MSG->ID);
$receiver=trim($xml->MSG->receiver);
$message=trim($xml->MSG->message);
$sender=trim($xml->MSG->sender);
$binary=trim($xml->MSG->binary);
$sent=trim($xml->MSG->sent);
foreach($xml->{'line-items'}->{'line-item'}作为$line-item){
数组推送($messageTitles,trim($lineItem->title));
}
标题(“HTTP/1.0 200 OK”);
退出();

现在我有点不知道如何重命名它了?

为了处理XML树,甚至不需要保存文件。因此,您可以处理该文件并将
文件移动到最后,将内容(…)

<?php
$xmlData = fopen('php://input' , 'rb');
while (!feof($xmlData)) { $xmlString .= fread($xmlData, 4096); }
fclose($xmlData);

$xml = new SimpleXMLElement($xmlString);

$id = trim($xml->MSG->ID);
$receiver = trim($xml->MSG->RECEIVER);
$message = trim($xml->MSG->MESSAGE);
$sender = trim($xml->MSG->SENDER);
$binary = trim($xml->MSG->BINARY);
$sent = trim($xml->MSG->SENT);

foreach ($xml->{'line-items'}->{'line-item'} as $lineItem) {
  array_push($messageTitles, trim($lineItem->title));
}

file_put_contents("temp/$receiver.xml", $xmlString, FILE_APPEND); // warning: security issue here

header('HTTP/1.0 200 OK');
exit();
MSG->ID);
$receiver=trim($xml->MSG->receiver);
$message=trim($xml->MSG->message);
$sender=trim($xml->MSG->sender);
$binary=trim($xml->MSG->binary);
$sent=trim($xml->MSG->sent);
foreach($xml->{'line-items'}->{'line-item'}作为$line-item){
数组推送($messageTitles,trim($lineItem->title));
}
文件内容(“temp/$receiver.xml”,$xmlString,文件追加);//警告:此处存在安全问题
标题(“HTTP/1.0 200 OK”);
退出();

请注意,您应该强制执行安全限制,以防止用户使用任意名称命名您的文件。

您想重命名什么?
temp/message…
-文件?在file\u put\u contents-statement中使用不同的路径/名称…我需要保存该文件,以便处理xml并将传递给我的xml重命名为其中一个字段?ie:1234然后1234将在文件名中好吧,我在最后一个小时内离线了,但我很高兴看到@cc处理了这个问题。在处理数据之前无需保存文件。。。