HTML5<input type="file"/>
を使用して、Flaskを実行しているサーバーにファイルをアップロードしようとしています。
これを行う方法を説明するまともな記事があります。ただし、以下を使用してサーバーに送信されたデータを取得することをお勧めします。
PHP:$ _SERVER ['HTTP_X_FILE_NAME'] Rails:request.env ['HTTP_X_FILE_NAME'] Django:request.META ['HTTP_X_FILE_NAME']
残念ながら、Flaskで上記に相当するものはわかりません。私の読書に基づいて、私は試しました:
- request.data
- request.stream.read()
- request.input_stream.read()
- request.input_stream.read(request.headers.get('content-type'、type = int)または0)
残念ながら、期待どおりに機能するものはなかったようです。
Chromeを使用してファイルをアップロードしています:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload/uri', true);
xhr.send(file);
Chromeでは、転送を開始した後、開発ツールのこの特定のPOSTのネットワーク転送のヘッダーContent-Length
で、アップロードされるファイルのサイズに正確に設定されます。これは、ファイルが実際に送信されていることを示しています。
Flaskで送信されているファイルにアクセスする方法、またはHTML5ファイルをサーバーに送信する方法を知りたいです。