2015-10-03 61 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」未聲明的錯誤。 –