我正在为我的大学项目使用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')
)
答案 0 :(得分: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
使用该信息来标识上载字段定义,其中包括上载文件路径。然后它传输文件。