Fix payload iteration issue of FormBody; Log form body; ignore body for response of HEAD.
parent
3309e7896a
commit
b2cbc450b8
@ -0,0 +1,37 @@
|
|||||||
|
# A demo HTTP file upload server modified from:
|
||||||
|
# http://flask.pocoo.org/docs/1.0/patterns/fileuploads/#uploading-files
|
||||||
|
# Run:
|
||||||
|
# (Windows)
|
||||||
|
# $ set FLASK_APP=file_upload_server.py
|
||||||
|
# $ flask
|
||||||
|
|
||||||
|
import os
|
||||||
|
from flask import Flask, flash, request, redirect, url_for
|
||||||
|
from flask import send_from_directory
|
||||||
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
|
|
||||||
|
UPLOAD_FOLDER = '/path/to/the/uploads'
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/upload', methods=['POST'])
|
||||||
|
def upload_file():
|
||||||
|
if request.method == 'POST':
|
||||||
|
for name, data in request.form.items():
|
||||||
|
print(f'form: {name}, {data}')
|
||||||
|
|
||||||
|
for name, file in request.files.items():
|
||||||
|
if file:
|
||||||
|
secured_filename = secure_filename(file.filename)
|
||||||
|
print(f"file: {name}, {file.filename} ({secured_filename})")
|
||||||
|
file.save(os.path.join(app.config['UPLOAD_FOLDER'],
|
||||||
|
secured_filename))
|
||||||
|
|
||||||
|
return "OK"
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/uploads/<filename>')
|
||||||
|
def uploaded_file(filename):
|
||||||
|
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
|
@ -0,0 +1,19 @@
|
|||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
#include "webcc/body.h"
|
||||||
|
|
||||||
|
TEST(FormBodyTest, Payload) {
|
||||||
|
std::vector<webcc::FormPartPtr> parts{
|
||||||
|
std::make_shared<webcc::FormPart>("json", "{}", "application/json")
|
||||||
|
};
|
||||||
|
|
||||||
|
webcc::FormBody form_body{ parts, "123456" };
|
||||||
|
|
||||||
|
form_body.InitPayload();
|
||||||
|
|
||||||
|
auto payload = form_body.NextPayload();
|
||||||
|
EXPECT_EQ(false, payload.empty());
|
||||||
|
|
||||||
|
payload = form_body.NextPayload();
|
||||||
|
EXPECT_EQ(true, payload.empty());
|
||||||
|
}
|
Loading…
Reference in New Issue