人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで、はてなハイクのBOTをつくりたいです。
いろんなサイトを見てつくった結果

<?php
$username = '******';
$password = '******';
$keyword = '******';
$source = '******';
$file = 'http://******.gif';
$url = 'http://h.hatena.ne.jp/api/statuses/update.xml?';
$params = 'file='. rawurlencode($file). '&keyword='. rawurlencode($keyword). '&source='. rawurlencode($source);
$result = file_get_contents($url. $params , false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Authorization: Basic '. base64_encode($username. ':'. $password)
)
)));
header('Content-type: text/xml; charset=UTF-8');
echo '<file>投稿内容:'. $file. '</file>';
?>

こうなりました。
http://developer.hatena.ne.jp/ja/documents/haiku/apis/rest/entries#update
に、file 引数を指定するときは multipart/form-data を使う必要があります。
と書いてあるのですが、multipart/form-data を使うって、どうすればよいのでしょうか?
自分で調べてみて、
enctyp属性にmultipart/form-dataを指定しなければならないということは分かったのですが、やり方が分かりません。
どうすればよいのでしょうか?


●質問者: 匿名質問者
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号

file_get_contents()でファイル送信する場合はheaderに「Content-Type: multipart/form-data」を登録する必要があります。

$header = array(
"Content-Type: multipart/form-data; boundary=" . $boundary,
"Content-Length: " . strlen($file_data),
"Authorization: Basic " . base64_encode($username . ':' . $password),
);

$result = file_get_contents($url. $params , false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => implode("\r\n", $header),
'content' => $file_data,
)
)));

こんな感じでどうでしょう?


匿名質問者さんのコメント
回答ありがとうございます! ただ、投稿が反映されません…
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ