我正在使用此表单:
<form action="abc.php" method="post" name="fname">
<input type="file" name="up" />
<input type="submit" name="submit" value="Submit"/>
</form>
由PHP处理:
$par = $_POST['up'];
$xml = @simplexml_load_file(file_get_contents($par));
$xml = $xml->getName();
echo $xml;
并且它给了我这个错误消息:unable to load external entity
。我该如何解决这个问题?
答案 0 :(得分:1)
您需要enctype="multipart/form-data"
中的form
属性接受文件:
<form enctype="multipart/form-data" action="abc.php" method="post" name="fname">
文件进入$_FILES
,而不进入$_POST
,因此您的$par
初始化应为:
$par = $_FILES['up'];
Dj Boris所说的是正确的,你对simplexml_load_file
的呼吁应该是:
$xml = simplexml_load_file($par['tmp_name']);
答案 1 :(得分:1)
其他答案都不正确。如果您通过simplexml_load_file()
$_FILES['index']
,则会收到错误消息,说明以下内容:
simplexml_load_file()期望参数1是有效路径,给定数组
解决方案是将$_FILES
数组中的临时文件名传递给它。
解决方案:
$svg = simplexml_load_file($_FILES['up']['tmp_name']);
答案 2 :(得分:0)
你在写:
simplexml_load_file(file_get_contents($par));
但我想,应该是
simplexml_load_file($par);