1

我正在使用这种形式:

<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。我怎样才能解决这个问题?

4

3 回答 3

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']);
    
于 2012-09-14T19:46:38.123 回答
1

其他答案都不正确。如果您通过simplexml_load_file() $_FILES['index'],您将收到一条错误消息,说明如下:

simplexml_load_file() 期望参数 1 是有效路径,给定数组

解决方案是将位于$_FILES数组内的临时文件名传递给它。

解决方案:

$svg = simplexml_load_file($_FILES['up']['tmp_name']);
于 2017-03-24T05:03:45.187 回答
0

你在写:

simplexml_load_file(file_get_contents($par));

但是我觉得应该是

simplexml_load_file($par);

根据http://php.net/manual/de/function.simplexml-load-file.php

于 2012-09-13T18:21:33.520 回答