Php TumblrAPI从HTML画布发布照片

Php TumblrAPI从HTML画布发布照片,php,html,api,canvas,tumblr,Php,Html,Api,Canvas,Tumblr,我在试图让我的代码将HTML画布作为照片发布到Tumblr时遇到了一些问题。我使用的是PHP,服务器端的代码如下: if(isset($_POST['postphoto']) and $_SESSION['loggedin']) { $title = $_POST['title']; $caption = $_POST['caption']; tags = $_POST['tags']; $imageData = $_POST['imageData'];

我在试图让我的代码将HTML画布作为照片发布到Tumblr时遇到了一些问题。我使用的是PHP,服务器端的代码如下:

if(isset($_POST['postphoto']) and $_SESSION['loggedin']) {
    $title = $_POST['title'];
    $caption = $_POST['caption'];
    tags = $_POST['tags'];
    $imageData = $_POST['imageData'];
    $imageData = substr($imageData,strpos($imageData,",")+1);
    $imageData = str_replace(' ','+',$imageData);

    # Set access token
    $tumblr->set_token($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

    $data = array();
    $data['post'] = array(
        'type'   => 'photo',
        'generator' => 'AppName',
        'data'    => $imageData,
        'name'   => $title,
        'caption' => $caption,
        'tags' => $tags
    );

    $response = $tumblr->fetch('http://www.tumblr.com/api/write', $data);

    if($response['successful']) {
        echo "Update successful!<br><br>";
    } else {
       echo "Update failed. {$response[body]}<br><br>";
    }
}
imageData是隐藏的表单类型,因此我只需设置值。然后将整个表单发布到PHP端。我已经检查并正确传递了值。我为TwitPic做了类似的事情,它可以工作,因为它只接受toDataURL值,但是Tumblr带来了很多问题


谢谢你的帮助!:

这可能是因为您正在将标题发布到照片帖子?
照片帖子没有标题。让我知道当你删除'name'=>$title,。

这可能是因为你正在将标题发布到照片帖子?
照片帖子没有标题。当您删除'name'=>$title,。

愚蠢的问题:您使用的是enctype=multipart formdata吗?嗨,Paddy!使用它进行了尝试,但它不起作用,也不重要,因为base64编码的数据在传递时被视为字符串。如果我错了,请纠正我。我不知道你是否错了。我只是觉得有必要检查一下facepalm解决方案是否正确P Tumblr提供了哪些问题?您是否尝试过先下载图像,以确保其正常工作?尝试从PHP脚本下载图像,以确保它也正常工作?嗨,Paddy,base64数据工作正常,因为我正在使用一个几乎相同的解决方案发布到TwitPic,并且它正常工作。问题是,我甚至不知道Tumblr想要从API获得什么样的数据,哈哈。最后我解决了这个问题,让PHP先将dataURL base64写入一个临时映像文件,然后将该映像文件作为源文件而不是数据提交,请参阅Tumblr API。愚蠢的问题:您使用enctype=multipart formdata吗?嗨,Paddy!使用它进行了尝试,但它不起作用,也不重要,因为base64编码的数据在传递时被视为字符串。如果我错了,请纠正我。我不知道你是否错了。我只是觉得有必要检查一下facepalm解决方案是否正确P Tumblr提供了哪些问题?您是否尝试过先下载图像,以确保其正常工作?尝试从PHP脚本下载图像,以确保它也正常工作?嗨,Paddy,base64数据工作正常,因为我正在使用一个几乎相同的解决方案发布到TwitPic,并且它正常工作。问题是,我甚至不知道Tumblr想要从API获得什么样的数据,哈哈。最后我解决了这个问题,让PHP先将dataURL base64写入临时图像文件,然后将该图像文件作为源文件而不是数据提交,请参阅Tumblr API。
var imgData = canvas.toDataURL("image/png");            
$("#imageData").val(imgData);