2015-10-03 2 views
0

Я использую web2py для моего проекта в колледже.Как загрузить видео после того, как они были загружены с помощью web2py

Мне удалось загрузить видео в мою базу данных (загрузив его в 'uploads files').

Но проблема в том, что я не знаю, как получить доступ к этому загруженному видео впоследствии.

Может кто-нибудь объяснить мне, как я могу получить доступ к видео после его загрузки?

Цель состоит в том, чтобы пользователь мог видеть их видео и загружать их.

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

Под 'полем ('Vide0', 'upload'),', является ли это '0', должно быть, там? – ASCIIThenANSI

+0

no its is "video" –

ответ

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 использует эту информацию для определения определения поля загрузки, в который входит путь к файлу загрузки. Затем он передает файл.

+0

Спасибо за информацию. Можете ли вы рассказать мне, в какой форме я должен импортировать «os» –

+0

Импорт 'os' в файл, в котором вы его используете. – Anthony

+0

Еще раз спасибо :). Но он показывает некоторую ошибку, например, «row» и «some_id» не были объявлены. –

Смежные вопросы