4

我的问题是 PHP 和 XML 问题,我和朋友一起处理图像上传 api,我们在创建 XML 字符串时遇到了问题。

图像.php:

$simage = new SimpleImage();
    $xml = new SimpleXMLElement('<bb-upload></bb-upload>');
    if($key == get_key()){
        require 'upload.php';
    }
    else{
        $xml->addChild('error', "102 Fehlerhafter Zugriffs Key");
    }
    header("Content-type:text/xml;charset=utf-8");
    echo $xml->asXML();

上传.php:

if ($_FILES["image"]["error"] > 0) {
$xml->addChild('error', "101 Bilder fehler: " . $_FILES["image"]["error"]);
}
else{
  $data = array(
        'tmp'   => $_FILES["image"]["tmp_name"],
        'save'  => time().'-'.rand(1, 1000).'.jpg',
    );

    $filename = $data['save'];

    $simage->load($data['tmp']);
    $simage->resize(350,300);
    $simage->save("../data/$filename");

    $xml->addChild('error', "0");
    $xml->addChild('src', "http://*******.de/bb-image/data/$filename");
}

问题是如果我们在 XML 上连接一切都可以,但是如果我们上传图片,我们就会变成这样error: error on line 1 at column 6: XML declaration allowed only at the start of the document

和这样的输出:

?<?xml version="1.0"?>
<bb-upload><error>0</error><src>http://*****.de/bb-image/data/1355858033-712.jpg</src>     </bb-upload>

为什么是一个?在代码中!

4

1 回答 1

0

您可能在 XML 文档的开头之前有一些字符。

这通常会导致错误。

在十六进制查看器中打开脚本,这通常会在编辑器中显示通常不可见的字符。删除这些,例如保存没有 BOM 的 PHP 文件(无论如何你都应该这样做)。

于 2013-01-01T22:17:02.667 回答