配置文件

Flask-Uploads 允许创建不同的 set,配置时把 FILES 替换成所需的 set 名。

UPLOADED_FILES_DEST = '/path/to/the/uploads'

如果 set 为 photos,则设置为:

UPLOADED_PHOTOS_DEST = '/path/to/the/uploads'

也可指定一个默认配置:

UPLOADS_DEFAULT_DEST = '/path/to/the/uploads'

初始化扩展

from flask_uploads import UploadSet, configure_uploads, IMAGES

# 初始化 flask-uploads
img = UploadSet('img', IMAGES)
configure_uploads(app, img)

使用 set

在需要的位置导入 set

from .. import img

@mod.route('upload/', methods=['GET', 'POST'])
def upload_test():
    if request.method == 'POST':
        # 定义子目录路径
        sub_folder_path = 'img/' + datetime.now().strftime('%Y/%m/%d')
        # 保存文件(扩展会自动处理文件名安全问题)
        filename = img.save(request.files['cover_pic'], folder=sub_folder_path)
    return render_template('admin/upload.html')

获取上传的文件 URL

扩展提供了 url() 方法:

img.url('demo.jpg')

会返回完整的 URL:

http://example.com/_uploads/img/demo.jpg

参考