Strumenti Utente

Strumenti Sito


programmazione:crow:hello_world

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
programmazione:crow:hello_world [22/01/2024 - 11:23]
Fabio Di Matteo
programmazione:crow:hello_world [27/01/2024 - 15:18] (versione attuale)
Fabio Di Matteo
Linea 74: Linea 74:
  
 </​file>​ </​file>​
 +
 +===== Upload di un file =====
 +
 +Salvataggio di un file inviato attraverso un form multipart.
 +
 +<code cpp>
 +...
 +CROW_ROUTE(app,​ "/​save"​).methods(crow::​HTTPMethod::​POST)([=](const crow::​request&​ req ){
 + std::​string root_folder="/​home/​fabio/​progetto"; ​
 + crow::​multipart::​message msg(req);
 +        crow::​multipart::​header myheader = msg.parts[0].get_header_object("​Content-Disposition"​);​
 +        //​std::​string myheader_value=myheader.value;​
 + std::​string ​ outfile_name=myheader.params["​filename"​];​
 + CROW_LOG_ERROR << "File Name ->"​+outfile_name;​
 +        ​
 +        std::​ofstream out_file(root_folder+"/"​+outfile_name);​
 +         if (!out_file)
 +   {
 +   CROW_LOG_ERROR << " Write to file failed\n";​
 +   return "Write to file failed!";​
 +   }
 +                  out_file << msg.parts[0].body;​
 +                  out_file.close();​
 +        ​
 +        return "​ok";​
 +  
 +  
 +
 + });
 +</​code>​
 +
 +<code html>
 +
 +<​!DOCTYPE html><​html><​head>​\
 +<​title>​Piso - Upload files</​title>​\
 +<meta name=\"​viewport\"​ content=\"​width=1280,​ initial-scale=1\">​\
 +</​head>​\
 +<​body>​\
 +<​h2>​Upload a file</​h2><​hr/>​\
 +<form action=\"​{{{action}}}\"​ method=\"​post\"​ enctype=\"​multipart/​form-data\">​\
 +<input type=\"​file\"​ id=\"​myfile\"​ name=\"​myfile\">​\
 +<button type=\"​submit\">​Upload this file</​button></​hr>​\
 +</​form>​\
 +</​body></​html>​
 +</​code>​
 +
 +

programmazione/crow/hello_world.txt · Ultima modifica: 27/01/2024 - 15:18 da Fabio Di Matteo