0

我正在为我的大学项目使用 web2py。

我设法将视频上传到我的数据库中(通过将其上传到“上传文件”中)。

但问题是我不知道之后如何访问上传的视频。

有人可以解释我如何在上传视频后访问它吗?

目的是用户可以看到他们的视频并下载它们。

db.define_table('product',Field('TITLE',requires=IS_NOT_EMPTY()),
            Field('OWNER_ID','reference auth_user',readable=False,),
            Field('Video','upload'),
            Field('DESCRIPTION','text'),
            Field('times','datetime'),
            Field('RATE')
            )
4

1 回答 1

0

上传字段存储文件的名称,因此要获取文件的路径,您可以执行以下操作:

import os
row = db(db.product.id == some_id).select().first()
filepath = os.path.join(request.folder, 'uploads', row.Video)

但是,web2py 包含一个内置方法,response.download该方法将自动检索和流式传输已通过上传字段上传的文件。脚手架应用程序在 default.py 控制器中包含以下功能:

def download():
    """
    allows downloading of uploaded files
    http://..../[app]/default/download/[filename]
    """
    return response.download(request, db)

要通过上述操作生成下载链接,您可以URL按如下方式使用帮助程序:

URL('default', 'download', args=row.Video)

row表中的一行在哪里db.product。该response.download方法将从request.args[0](即第一个 URL arg)读取文件名。文件名包括 db 表和字段名称,因此response.download使用该信息来识别上传字段定义,其中包括上传文件路径。然后它流式传输文件。

于 2015-10-03T17:04:40.090 回答