在StackOverflow和Google上对此进行了大量搜索,但似乎无法找到这种特定情况的答案
我正在使用通过PHP POST向我发送XML文件的客户端,这是我使用的代码:
$xml = file_get_contents('php://input');
$xmlStripped = stripslashes($xml);
$xmlContent = simplexml_load_string($xmlStripped);
print_r($xmlContent);
为了进行测试,我还将XML文件直接上传到我的服务器,并按照以下方式执行:
$xml = file_get_contents('http://www.site.com/linktoxml.xml');
$xmlStripped = stripslashes($xml);
$xmlContent = simplexml_load_string($xmlStripped);
print_r($xmlContent);
然后它工作正常,它将XML打印为对象。
我用来上传的表单是这样的:
<form action="http://app.site.com/upload" method="POST">
<input type="file" name="file" id="file ">
<input type="submit" value="upload">
</form>
答案 0 :(得分:0)
答案 1 :(得分:0)
file_get_contents('php://input');
通常会为您提供原始RFC 1867数据,而不是文件本身。文件数据被包含在此请求数据中。在你的情况下,它给出一个空字符串,因为PHP在处理它之后丢弃这些数据以节省内存。
$_FILES['file']['tmp_name']
存在并且是一个字符串):
$xml = file_get_contents($_FILES['file']['tmp_name']);