Imgur に画像をアップロードし、画像の URL をサイトのデータベースに保存できる Web サイトを作成しようとしています。そのために、この Stack Overflow post: imgur api won't workから多くのコードを取得し、以下のコードに合わせて変更しました。
最初:私のフォーム
<form action="uploadfile.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
アップロードファイル.php:
<?
//configuration
define("IMGUR_API_KEY", "");
require("../includes/config.php");
include 'xmlparser.php'; // From http://www.criticaldevelopment.net/xml/doc.php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$data = file_get_contents($_FILES["file"]['tmp_name']);
// $data is file data
$pvars = array('image' => base64_encode($data), 'key' => IMGUR_API_KEY);
$timeout = 30;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
$xml = curl_exec($curl);
$parser = new XMLParser($xml);
$parser->Parse();
echo $parser->images->item->links->original;
curl_close ($curl);
}
else
{
render("uploadfile_form.php", ["title"=>"Upload Image"]);
}
?>
設定とレンダリングは、私がサイトを構築しているフレームワークの一部にすぎません。プログラムの実行を許可するだけです。しかし、私のプログラムが実行され、27 行目に到達すると、次のようになります。
"Notice: Undefined property: XMLParser::$images in /home/jharvard/vhosts/project/html/uploadfile.php on line 26" が表示された後、非オブジェクトのプロパティを取得しようとしたことに対してさらに 3 つの通知が表示されます。同じ行。$parser の何が問題なのか分かりますか?