获取PHP中上传的XML文件的完整内容

时间:2018-03-21 10:13:14

标签: php wordpress forms file-upload file-get-contents

我正在建立一个文件上传表单,用户可以在其中提交XML配置文件。我的目标是获取完整内容并将其作为新帖子(自定义帖子类型)插入Wordpress。它在大多数情况下都在工作,除了在使用file_get_contents()时我在使用内容拉动XML标记时遇到困难。这在使用时是否省略了XML标记?如果是这样,我怎样才能获得该文件的全部内容?

这是表单和处理程序的代码......

function slicer_profile_form()
{
    echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post" enctype="multipart/form-data">';

    echo '<p>';
    echo 'Profile<br />';
    echo '<input type="file" name="slicer-profile" accept="text/xml">';
    echo '</p>';

    echo '<p><input type="submit" name="slicer-profile-submitted" value="Submit"/></p>';
    echo '</form>';
}

function slicer_profile_submit()
{
    // if the submit button is clicked, submit
    if (isset($_POST['slicer-profile-submitted']))
    {
        $contents = file_get_contents( $_FILES['slicer-profile']['tmp_name'] );
        var_dump($contents);
    }
}

2 个答案:

答案 0 :(得分:1)

你可以使用它。

 <?php
$xml=simplexml_load_file($_FILES['slicer-profile']['tmp_name']) or die("Error: Cannot create object");
print_r($xml);
?> 

它将提供xml内容。

答案 1 :(得分:1)

您的脚本可能不安全,您可能需要使用php命令执行正确的文件上载过程,例如:is_uploaded_file和move_uploaded_file

我总是检查列入黑名单的文件类型以及检查我收到的文件类型。您还需要确保您收到的内容也是安全的。

改为:

echo '<pre>';
var_dump($contents);
echo '</pre>';

您当前的脚本可能会正确输出。