バックエンドとしてC++アプリケーションでhttp://fastcgi.com/のライブラリを使用し、フロントエンドとしてnginxWebサーバーを使用しています。
HTMLフォームからファイルを正常に投稿し、nginxサーバー側で一時ファイルを表示できます。しかし、fastcgi_stdioを使用してマルチパートPOSTリクエストの本文にアクセスする方法を理解できません。これは私のHTMLフォームです。
<html>
<head>
<title>Test Server</title>
<script src="http://code.jquery.com/jquery.min.js"></script>
</head>
<body>
<form id="upload-form" method="post" target="upload_target" enctype="multipart/form-data" action="/upload">
<input name="file" id="file" size="27" type="file" /><br />
<input type="submit" name="action" value="Upload" /><br />
<iframe id="upload_target" name="upload_target" src="" style="width:100%;height:100px;border:0px solid #fff;"></iframe>
</form>
</body>
</html>
私のnginxconfファイル:
location /upload {
# Pass altered request body to this location
upload_pass @test;
# Store files to this directory
# The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist
upload_store /www/test;
# Allow uploaded files to be read only by user
upload_store_access user:rw group:r all:r;
# Set specified fields in request body
upload_set_form_field $upload_field_name.name $upload_file_name;
upload_set_form_field $upload_field_name.content_type "$upload_content_type";
upload_set_form_field $upload_field_name.path "$upload_tmp_path";
# Inform backend about hash and size of a file
upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5";
upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";
upload_pass_form_field "^submit$|^description$";
upload_cleanup 400 404 499 500-505;
}
include fastcgi.conf;
# Pass altered request body to a backend
location @test {
fastcgi_pass localhost:8080
}
では、fastcgi c ++アプリケーションでPOSTリクエスト本文を処理/取得するにはどうすればよいですか?また、fastcgiアプリ側で適切なファイルに書き込む方法はありますか?
これを達成するためのより良い高速モジュールはありますか?
ありがとうございました。