file() 将文件上传到upload下的的指定目录。
以下是 file() 的语法:
1 | file ( dir = 'article' , image = False ) |
● dir [str]:文件保存目录名,位于 /upload/ 目录下的一个目录名,不会自动创建。
● image [bool]:是否为图片文件,True是,False不是。
返回一个字典。
以下展示了使用 file() 的简单实例:
1 2 3 4 5 6 | from kyger.upload import Upload file = self .kg[ 'post' ].get( 'filename' , { 'data' : ''}) # 获取文件数据,filename为表单的name属性值 # 会在/upload/product目录新建一个年月格式的文件夹:'{yy}{mm}',然后将文件命名为: '{yy}{mm}{dd}{hh}{ii}{ss}{rand}' 加后缀名的格式。 return Upload( file , self .db, self .kg). file ( 'product' ) # 保存到/upload/product目录 |
1 2 3 4 5 6 | from kyger.upload import Upload file = self .kg[ 'post' ].get( 'filename' , { 'data' : ''}) # 获取文件数据,filename为表单的name属性值 # 会在/upload/product目录新建一个年月格式的文件夹:'{yy}{mm}',然后将文件命名为:' {yy}{mm}{dd}{hh}{ii}{ss}{rand}'加后缀名的格式。 return Upload( file , self .db, self .kg). file ( 'product' , True ) |
以上实例运行后输出的结果为:
1 2 | { 'state' : 'FAILURE' , 'msg' : ''} # 失败时返回 msg 错误消息 # 成功时返回url/新的文件-名/文件大{'state': 'SUCCESS', 'url': '/upload/article/201909/20190902161609374.zip','filename': '20190902161609374.zip', 'size': 0.1, 'type': '.zip', 'loginid': ''} |
1 2 3 4 | { 'state' : 'FAILURE' , 'msg' : ''} # 失败时返回 msg 错误消息 # 成功时返回url/新的文件-名/文件大小M/文件类型后缀 { 'state' : 'SUCCESS' , 'url' : '/upload/article/201909/20190902161852291.png' , 'filename' : '20190902161852291.png' , 'size' : 0.02 , 'type' : '.png' , 'loginid' : ''} |
1 2 3 4 5 6 7 8 9 10 | file = self .kg[ 'post' ].get( 'file' , '') # 获取文件数据 from kyger.upload import Upload up = Upload( file , self .db, self .kg) # 创建实例 # 子目录及文件名中可用变量:{y}:两位年 {yy}:四位年 {mm}:两位月 {dd}:两位日 {hh}:两位小时 {ii}:两位分钟 {ss}:两位秒 {time}:时间戳 {rand}:三位随机数 up.path = 'file/{yy}{mm}' # 文件存放路径 up.filename = '{y}{mm}{dd}{hh}{ii}{ss}' # 文件命名规则 up.exist_rename = True # 文件名存在是否自动重命名。命名规则:*(1).* up.upload_log = True # 开启日志 up.image( 'up_file' ) # 上传到upload/up_file |
以上实例运行后输出的结果为:
1 2 3 4 | { 'state' : 'FAILURE' , 'msg' : ''} # 失败时返回 msg 错误消息 # 成功时返回url/新的文件-名/文件大小M/文件类型后缀{{'state': 'SUCCESS', 'url': '/upload/up_file/file/201909/190902161609.zip' , 'filename' : '190902161609.zip' , 'size' : 0.1 , 'type' : '.zip' , 'loginid' : ''} |