CppCMS
uploads/content.h Header File
#ifndef CONTENT_H
#define CONTENT_H
#include <cppcms/view.h>
#include <cppcms/form.h>
#include <iostream>
namespace content {
struct file_form : public cppcms::form {
cppcms::widgets::text description;
file_form()
{
description.message("Image Description");
description.non_empty();
image.message("Image to upload");
image.help("PNG or JPEG only allowed under 100Kb");
image.non_empty();
// Sanity checks on the image
// size 100k
image.limits(0,100*1024);
// Filename with proper extension (optional)
image.filename(booster::regex(".*\\.(jpg|jpeg|png)"));
// Correct mime type (optional)
image.mime(booster::regex("image/(png|jpeg)"));
// And the most important (more then two above) the
// magic numbers for each file and this the most important
// validation
//
// Note: this what really defines the file type, other can be
// easily changed
image.add_valid_magic("\x89\x50\x4e\x47\x0D\x0A\x1A\x0A"); // png
image.add_valid_magic("\xff\xd8"); // jpeg
submit.value("Upload");
add(description);
add(image);
add(submit);
}
};
struct upload : public cppcms::base_content {
file_form info;
};
} // content
#endif
// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4