以下の手順で、GrapesAvatorAPIを利用し、PHPでのファイルアップロードアプリを作成し、APIキーをバックエンドで管理しつつ、ユーザーに説明付きで出力を表示します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ファイルアップロード</title>
</head>
<body>
<h1>ファイルをアップロード</h1>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<label for="file">アップロードするファイルを選択してください:</label>
<input type="file" name="file" id="file" required><br><br>
<button type="submit">アップロード</button>
</form>
</body>
</html>
2. バックエンド (PHPでファイルアップロード)
<?php
// APIキーをサーバーサイドに保存(例:configファイルに保存、またはデータベース管理)
$apiKey = "your_api_key"; // APIキーをハードコードするか、安全な場所に保存
// ファイルが正しくアップロードされたか確認
if ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
echo "<p>ファイルのアップロードに失敗しました。エラーコード: " . $_FILES['file']['error'] . "</p>";
exit;
}
// アップロードされたファイルを処理
$file = new CURLFile($_FILES['file']['tmp_name'], $_FILES['file']['type'], $_FILES['file']['name']);
// cURLを使用してAPIにリクエストを送信
$ch = curl_init('https://grapes-avatarapi.mixeder.net/upload');
$data = [
'file' => $file,
'apiKey' => $apiKey
];
// cURLオプションを設定
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// リクエストを実行してレスポンスを取得
$response = curl_exec($ch);
// cURLセッションを閉じる
curl_close($ch);
// レスポンスをJSON形式でデコード
$result = json_decode($response, true);
// アップロード成功メッセージとファイルURLを出力
if (isset($result['fileName'])) {
$folderName = "フォルダ名"; // 実際のフォルダ名に変更
$fileName = $result['fileName'];
$fileUrl = "https://grapes-avatarapi.mixeder.net/{$folderName}/{$fileName}";
echo "<h2>アップロード結果</h2>";
echo "<p>ファイルが正常にアップロードされました。以下のURLからファイルにアクセスできます。</p>";
echo "<p><strong>アップロードされたファイルのURL:</strong> <a href='{$fileUrl}'>{$fileUrl}</a></p>";
echo "<p>ファイル名: {$fileName}</p>";
} else {
echo "<p>アップロードに失敗しました。レスポンス:</p>";
echo "<pre>{$response}</pre>";
}
?>
アップロード結果
ファイルが正常にアップロードされました。以下のURLからファイルにアクセスできます。
アップロードされたファイルのURL: https://grapes-avatarapi.mixeder.net/フォルダ名/68fea2b2d25d1100.png
ファイル名: 68fea2b2d25d1100.png