1 pièce(s) jointe(s)
Rest SDK récupérer un fichier dans le body et le stocker dans un dossier
Bonjour à tous,
Voilà, j'expose le contexte avec ce que j'ai fait, et ce que j'ai pu faire, et le problème sur lequel je bloque depuis quelque temps.
Je suis en train de développer un serveur, un webservice en C++ avec la librairie de microsoft C++ Rest SDK.
J'ai pu setup mon serveur pour prendre en compte les requêtes HTTP en POST comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
int main(int argc, const char** argv)
{
http_listener listenerUpload(L"http://localhost/upload");
try
{
listenerUpload
.open()
.then([&listenerUpload]() {std::TRACE(L"\nServer started\n"); })
.wait();
while (true);
}
catch (std::exception const & e)
{
std::cout << e.what() << std::endl;
}
} |
Je récupère ma requête via ma méthode:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
void handle_uploadPostFile(http_request request)
{
is_authorized(request); //Cette methode sert à vérififier le token, sa validité, sa date d'expiration et les roles de l'utilisateur
auto file = request.body(); //Je veux récupérer le fichier envoyé ici
boost::filesystem::path path(boost::filesystem::current_path()); //Je crée l'adresse de mon répertoire ou je veux stocker mes fichiers reçu
std::string storageFolder{ "\\media" };
std::string repository{ path.string() + storageFolder };
std::ofstream filePath(repository);
filePath << file;
request.reply(200, file);
} |
Le retour de ma requête "request.reply(200, file);" me retourne ça quand je lui passe par exemple une image:
Pièce jointe 475252
Je voudrais stocker ce fichier dans un dossier, je vous ai épargné tout les morceaux de code en commentaire après mes maintes tests.
En espérant que l'on puisse m'aider à résoudre enfin ce problème sur lequel je bute depuis un moment.
Merci d'avoir pris le temps de me lire et m'aider à me sortir de ce problème.