2
我有一些問題試圖讓我的代碼將HTML畫布作爲照片發佈到Tumblr。我使用PHP,並在服務器端的代碼如下:Tumblr API從HTML畫布發佈照片
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>";
}
}
在JavaScript端,我有以下幾點:
var imgData = canvas.toDataURL("image/png");
$("#imageData").val(imgData);
的imageData是表單類型隱藏所以我乾脆的設置值。整個表單然後發佈到PHP端。我已經檢查並且值正確地傳遞了(我爲TwitPic做了類似的事情,因爲它只需要toDataURL值,但Tumblr給出了很多問題)。
感謝您的幫助! :)
最後,我通過讓PHP首先將dataURL(base64)寫入臨時映像文件,然後將該映像文件作爲源(而不是數據,請參閱Tumblr api)來解決此問題。 – Wysie
愚蠢的問題:你使用enctype =「multipart-formdata」? – Paddy
嗨,稻田!試過了,它不起作用(並且應該不重要,因爲base64編碼數據在通過時被視爲字符串)。如我錯了請糾正我。 – Wysie