誰か (できればプログラム) が大きなバイナリ ファイルを送信し、そのファイルの ID を受け取ることができる Web API を作成しようとしています。method="POST"
標準の multipart/form-data MIME タイプを使用して、フォーム ( ) と<input type="file" ...>
PHP コードにファイルを送信できる要素を含む HTML があります。PHP は ID を生成し、その結果として出力します。別の HTML ページにリダイレクトしたり、HTML 自体を生成したりするのではなく、PHP は単純に ID を出力するため、見栄えはよくありませんが、プログラムによるファイル送信 API の使用目的には十分であることが期待されます。
ここまでは順調ですね。返された ID をクライアント側のコードで取得し、それを使用して他の API を呼び出す場合は、注意が必要です。クライアントが JavaScript を使用した Web ページである場合、クライアントは を使用する必要があるように見えXMLHttpRequest
ますが、ユーザーがファイル入力コントロールで選択したファイルを使用するためにそのオブジェクトを取得する方法が明確ではありません。
手動で操作する Web フォーム (UI とテストを簡単にするため) と純粋にプログラムによる呼び出し (JavaScript、curl/libcurl など) の両方で同じ API が機能することを望みます。クエリ文字列に ID を含む別のページへのリダイレクトを PHP に発行させたくありません。また、HTML を直接返したくありません。シンプルなファイル入力、ID 出力 API が必要なだけです。
これは難しいことが証明されているので、私は物事を間違った方向に進めているのではないかと疑っています. 私は別のデザインにもオープンですが、物事をできるだけシンプルに保つことを好みます. やや似た質問を見つけましたが、Java中心すぎて、私の問題に完全には対応していません。