Section Menu:  

附件上传函数:file()

  • 发布时间: 2019-08-30 00:00
  •    阅读: 2985   

描述

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': ''}

适应版本

v1.0.1