mirror of
https://github.com/vlang/v.git
synced 2025-08-04 02:07:28 -04:00
45 lines
810 B
V
45 lines
810 B
V
module main
|
|
|
|
import veb
|
|
|
|
const port = 8082
|
|
|
|
pub struct Context {
|
|
veb.Context
|
|
}
|
|
|
|
pub struct App {
|
|
}
|
|
|
|
fn main() {
|
|
mut app := &App{}
|
|
veb.run[App, Context](mut app, port)
|
|
}
|
|
|
|
pub fn (mut app App) index() veb.Result {
|
|
return $veb.html()
|
|
}
|
|
|
|
@['/upload'; post]
|
|
pub fn (mut app App) upload(mut ctx Context) veb.Result {
|
|
fdata := ctx.files['upfile']
|
|
|
|
data_rows := fdata[0].data.split('\n')
|
|
|
|
mut output_data := ''
|
|
|
|
for elem in data_rows {
|
|
delim_row := elem.split('\t')
|
|
output_data += '${delim_row[0]}\t${delim_row[1]}\t${delim_row[0].int() + delim_row[1].int()}\n'
|
|
}
|
|
|
|
output_data = output_data.all_before_last('\n')
|
|
|
|
println(output_data)
|
|
|
|
ctx.set_header(.content_disposition, 'attachment; filename=results.txt')
|
|
ctx.send_response_to_client('application/octet-stream', output_data)
|
|
|
|
return $veb.html()
|
|
}
|