2015-10-03 63 views
0

我正在使用web2py用于我的大学项目。如何在用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') 
      ) 
+1

请包含项目视频上传部分的代码。这对帮助我们解释如何解决问题至关重要。 – stef

+0

在'Field('Vide0','upload')下,',那个'0'应该在那里? – ASCIIThenANSI

+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) 

其中rowdb.product表中的一行。 response.download方法将从request.args[0](即,第一个URL参数)读取文件名。文件名包括数据库表和字段名称,因此response.download使用该信息来标识上载字段定义,其中包括上载文件路径。然后它传输文件。

+0

感谢您的信息。你能告诉我在哪个领域我必须导入'os' –

+0

将'os'导入你使用它的文件中。 – Anthony

+0

再次感谢:)。但它显示了一些像“行”和“some_id”未声明的错误。 –