HTML プロセス経由で github リポジトリにファイルを送信しようとしましたが、エラー 422 で失敗しました。数値的には良い気がするんですが…違うんです。私はこの部分の初心者なので、問題の解決策が見つかりません。
###記事上で: https://levelup.gitconnected.com/how-to-upload-images-to-github-via-javascript-59163b8fff27誰かが
base64 を使用してデータを分割することについて書いていましたが、これはトラックである可能性がありますが、私の場合はそれをエンコードする方法がわかりません。以下は私の試みと失敗です! ! !
リーリー
P粉1387117942024-02-26 09:48:21
@AKX が提案したようにコードを更新しましたが、返されたエラーは同じエラー 422
です// 反応する 「反応」から React をインポート // アプリ 「../../components/struct/layout」からレイアウトをインポート デフォルト関数 ApiGithubToken() をエクスポート { 戻る () } 関数ロード(イベント:任意) { if(event !== 未定義 &&event.target.type === "ファイル") { const ファイル = イベント.ターゲット.ファイル[0]; console.log("ファイル",ファイル); const リーダー = 新しい FileReader(); if (ファイル) { Reader.readAsDataURL(ファイル); } Reader.addEventListener("load", () => { const git= { 所有者:「クヌペル」、 リポジトリ: 'gatsby_react_lab', パス: `media/test/`、 トークン: process.env.GATSBY_TOKEN_GITHUB、 } アップロード_ファイル(git、リーダー.結果); }、 間違い); } } const Upload_file = async (git: { 所有者: 文字列; リポジトリ: 文字列; パス: 文字列; トークン: 文字列 | 未定義; }, データ: 任意) => { let Final_path = `https://api.github.com/repos/${git.owner}/${git.repo}/contents/${git.path}`; console.log("データ", データ); const res = await fetch(final_path, { メソッド: "PUT"、 ヘッダー: { 受け入れる: "application/vnd.github json", 認可: `ベアラー ${git.token}` }、 本文: JSON.stringify({ メッセージ: "Téléversement de votre fichier", コンテンツ: データ、 // 内容: data.split('base64,')[1] // コンテンツ: data.content }) } ); return await res.json(); } エクスポート const ヘッド = () => { <>Github にアップロードするファイルを選択してください
ロード(イベント)}/>
API Github トークン > }
よかったです。文書が承認されました。いい感じだと思います