diff options
Diffstat (limited to 'v_windows/v/examples/vweb/file_upload')
-rw-r--r-- | v_windows/v/examples/vweb/file_upload/index.html | 6 | ||||
-rw-r--r-- | v_windows/v/examples/vweb/file_upload/upload.html | 14 | ||||
-rw-r--r-- | v_windows/v/examples/vweb/file_upload/vweb_example.v | 32 |
3 files changed, 52 insertions, 0 deletions
diff --git a/v_windows/v/examples/vweb/file_upload/index.html b/v_windows/v/examples/vweb/file_upload/index.html new file mode 100644 index 0000000..a2bffad --- /dev/null +++ b/v_windows/v/examples/vweb/file_upload/index.html @@ -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> diff --git a/v_windows/v/examples/vweb/file_upload/upload.html b/v_windows/v/examples/vweb/file_upload/upload.html new file mode 100644 index 0000000..e80359d --- /dev/null +++ b/v_windows/v/examples/vweb/file_upload/upload.html @@ -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> diff --git a/v_windows/v/examples/vweb/file_upload/vweb_example.v b/v_windows/v/examples/vweb/file_upload/vweb_example.v new file mode 100644 index 0000000..bde55c3 --- /dev/null +++ b/v_windows/v/examples/vweb/file_upload/vweb_example.v @@ -0,0 +1,32 @@ +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() +} + +['/upload'; post] +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', ' ', ' ', ' ']) + } + + return $vweb.html() +} |