1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

vweb: add multipart/form-data parser and file upload (#8160)

This commit is contained in:
Louis Schmieder
2021-01-21 11:08:51 +01:00
committed by GitHub
parent b44ec4921f
commit f7c251f8f3
4 changed files with 140 additions and 2 deletions

View File

@ -0,0 +1,6 @@
<h2>File Upload</h2>
<form method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="upfile" multiple>
<input type="submit" value="Press">
</form>

View File

@ -0,0 +1,14 @@
<meta charset="utf-8">
File amount: @fdata.len
@for i, data in fdata
<h2>Filename: @data.filename</h2>
<h2>Type: @data.content_type</h2>
<p>@{files[i]}</p>
@end
<a href="/">Back</a>

View File

@ -0,0 +1,33 @@
module main
import vweb
const (
port = 8082
)
struct App {
vweb.Context
}
fn main() {
vweb.run<App>(port)
}
pub fn (mut app App) index() vweb.Result {
return $vweb.html()
}
[post]
['/upload']
pub fn (mut app App) upload() vweb.Result {
fdata := app.files['upfile']
mut files := []vweb.RawHtml{}
for d in fdata {
files << d.data.replace_each(['\n', '<br>', '\n\r', '<br>' '\t', ' ', ' ', '&nbsp;'])
}
return $vweb.html()
}