Ошибка просмотра web2py - PullRequest
       7

Ошибка просмотра web2py

1 голос
/ 02 ноября 2011

Я новичок в web2py, и мне нужно написать скрипт загрузки файла.

теперь в поиске через интернет я нашел скрипт и он вроде работает локально на моем cmp После помещения его на сервер я получаю неверное представление (uploda_zipa / upload_file.html)

Код:

  import datetime



  timestamp = datetime.datetime.today()
                db.define_table('files',
                Field('title', 'string'),
                Field('uploaded_data', 'upload'),
                Field('created_on','datetime',default=timestamp))

  db.files.title.requires = IS_NOT_EMPTY()                
  db.files.uploaded_data.requires = IS_NOT_EMPTY()
  #Now, lets add an action the our controller

  def upload_file():
    url = ""

    form = SQLFORM(db.files, showid=False)
    if form.accepts(request.vars, session):
       response.flash = T('File uploaded successfully!')
       url = URL(r=request, f="download", 
             args = db(db.files.title ==   request.vars.title).select(orderby=~db.files.created_on)[0].uploaded_data)

    return dict(form=form, cknum=request.vars.CKEditorFuncNum, url=url)

Я также хотел бы знать, как задать путь к папке, в которую следует загружать файлы, или это способ по умолчанию. План заключается в том, что файл загружается в определенную папку, а затем обрабатывается другим сценарием

спасибо

1 Ответ

2 голосов
/ 02 ноября 2011

Если у вас не определено представление «upload_file.html», web2py вернется к использованию представления «generic.html». Однако по умолчанию общие представления включены только на локальном хосте, что, вероятно, объясняет, почему он работал на локальном компьютере, но не один раз загружается на сервер. По соображениям безопасности рекомендуется не включать общие представления о производстве или, по крайней мере, делать это разумно. Подробнее см. здесь .

Что касается папки для загрузки, по умолчанию используется / yourapp / uploads, хотя вы можете изменить ее следующим образом:

import os
db.define_table('files',
    Field('uploaded_data', 'upload',
        uploadfolder=os.path.join(request.folder, 'path', 'to', 'uploads')))

См. Объяснение uploadfolder в списке аргументов для Field().

...