file() 将文件上传到upload下的的指定目录。
以下是 file() 的语法:
file(dir='article', image=False)
● dir [str]:文件保存目录名,位于 /upload/ 目录下的一个目录名,不会自动创建。
● image [bool]:是否为图片文件,True是,False不是。
返回一个字典。
以下展示了使用 file() 的简单实例:
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目录
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)
以上实例运行后输出的结果为:
{'state': 'FAILURE', 'msg': ''} # 失败时返回 msg 错误消息 # 成功时返回url/新的文件-名/文件大{'state': 'SUCCESS', 'url': '/upload/article/201909/20190902161609374.zip','filename': '20190902161609374.zip', 'size': 0.1, 'type': '.zip', 'loginid': ''}
{'state': 'FAILURE', 'msg': ''} # 失败时返回 msg 错误消息 # 成功时返回url/新的文件-名/文件大小M/文件类型后缀 {'state': 'SUCCESS', 'url': '/upload/article/201909/20190902161852291.png', 'filename': '20190902161852291.png', 'size': 0.02, 'type': '.png', 'loginid': ''}以下展示了使用 file() 的详细实例:
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
以上实例运行后输出的结果为:
{'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': ''}