BT编程语言文档
files 文件上传
BT处理文件上传简单到极致, 由用户端上传文件,服务端使用https.files接受文件,支持多文件上传,以下是简单示例: // 上传文件 if http.method=='POST'{ dir = 'web/upload' for v in http.files['file']{ if v.file.move(dir) { println dir +'/'+ v.filename } else { println v.filename + ':error' } } } // 用户端HTML print `<html> <head> <title>Upload file</title> </head> <body> <h1>Upload file</h1> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" multiple/> <input type="submit" value="upload" /> </form> </body> </html>` https.files是一个object对象,key和value形式,key对应用户端input的name,value是一个array数组,对应的多文件流信息,格式如下: { "file": [ { "filename": "a1.jpg", "size": 43121, "type": "image/jpeg", "path": "temp\\pEWmOOibMWcAAAAAtSElAt7YjqHCPtW2.jpg", "name": "file", "info": "form-data; name=\"file\"; filename=\"a1.jpg\"", "file": lib:fs }, { "filename": "a2.jpg", "size": 15291, "type": "image/jpeg", "path": "temp\\bJjbOOibMWcAAAAAnARVwl6LX0u3iFJ1.jpg", "name": "file", "info": "form-data; name=\"file\"; filename=\"a2.jpg\"", "file": lib:fs } ] } https.files的子对象说明:-
filename
文件名,包含后缀 -
size
文件大小,单位字节 -
type
文件类型,例如image/jpeg
-
path
文件临时路径 -
name
文件input的name -
info
文件信息,如:form-data; name="file"; filename="a1.jpg" -
file
是一个lib:fs
对象,支持所有lib:fs
的原型函数,如move、copy、delete等