doumaogui5937 2015-06-22 21:31 采纳率: 100%
浏览 81

responseText正在运行但responseXML为null

I am trying to open an XML file with Ajax. Its responseText is working fine but responseXML is returning null. I checked the syntax, there is nothing wrong with the syntax. I don't know what the problem is. Here is my code...

My HTML code

<div id='albumBox'>
                    <input type='file' multiple name='newsfeedAlbum[]' id='newsfeedAlbum' onchange='uploadNewsfeedImages()' />
</div>
<div id='uploadingImages'>
    <progress id='newsfeedImageProgressBar'></progress>
</div>
<div>
    <input type='button' id='albumButton' value='post' />
</div>

my JavaScript code…

function uploadNewsfeedImages()
{
    //alert("loaded");
    var files = document.getElementById("newsfeedAlbum").files;
    var formData = new FormData();
    var unixTimeStamp = Math.floor(((new Date).getTime())/1000);
    formData.append("action","post");
    formData.append("thing","album");
    formData.append("unixTimeStamp",unixTimeStamp);
    formData.append("album_to","news_feed");
    for(var i = 0;i < files.length;i++)
    {
        var file = files[i];
        //alert("file name is "+files.item(i).name);        
        formData.append("albumImages[]",file);
    }
    var xhr = new XMLHttpRequest();
    xhr.open("POST","add_newsfeed.php",true);       
    xhr.onreadystatechange = function()
    {
        if(xhr.readyState == 4)
        {
            //alert(xhr.responseText);
            alert(xhr.responseXML);         
        }
    }
    xhr.upload.onprogress = function(event)
    {
        showProgress(xhr,event);
    }
    xhr.send(formData);
}
function showProgress(xhr,event)
{
    var uploaded = event.loaded/event.total;
    uploaded = Math.floor(uploaded*100);
    //alert(uploaded);
    document.getElementById("newsfeedImageProgressBar").value = uploaded;
}

Here is my php code...

session_start();
echo '<?xml version="1.0" encoding="UTF-8"?>';
header("Content-type: text/xml");
if(isset($_POST))
{
    echo "<newsfeed>";
    $action = $_REQUEST["action"];
    if($action == "post")
    {
        $thing = $_REQUEST["thing"];
        if($thing == "text")
        {
        }
        elseif($thing == "album")
        {
            $succeded = array();
            $failed = array();
            $targetFolder = "images/";
            $extensions = array("jpeg","jpg","bmp","png","gif");
            foreach($_FILES["albumImages"]["name"] as $key=>$value)
            {
                //echo $key."=>".$value."<br />";
                if($_FILES["albumImages"]["error"][$key] === 0)
                {
                    $extension = strtolower(pathinfo($value,PATHINFO_EXTENSION));
                    if(in_array($extension,$extensions))
                    {
                        $source = $_FILES["albumImages"]["tmp_name"][$key];
                        $destination = $targetFolder.basename($value);
                        if(move_uploaded_file($source,$destination))
                        {
                            $succeded[] = $value;
                        }
                        else
                        {
                             $failed[] = $value;
                        }
                    }
                    else
                    {
                        $failed[] = $value;
                    }
                }
                else
                {
                    $failed[] = $value;
                }
            }           
            if(count($succeded)>0)
            {
                echo "<succeded>";                  
                for($i=0;$i<count($succeded);$i++)
                {
                    echo "<succeded_file>".$succeded[$i]."</succeded_file>"; 
                }
                echo "</succeded>";
            }
            if(count($failed)>0)
            {
                echo "<failed>";
                for($i=0;$i<count($failed);$i++)
                {
                    echo "<failed_file>".$failed[$i]."</failed_file>"; 
                }
                echo "</failed>";
            }           
        }
    }
    echo "</newsfeed>";
}
?>
  • 写回答

1条回答 默认 最新

  • dongshendi3599 2015-06-22 21:36
    关注

    It's probably because the content type of the file coming back from the sever is not xml.

    Try using header('Content-Type: text/xml'); in your PHP code.

    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c