Загрузка видео в магазин приложений Google App Engine - PullRequest
3 голосов
/ 05 августа 2010

Я пытаюсь связать видеофайл с записью со множеством свойств, но не могу позволить пользователю делать все в одной форме - назвать видео, дать описание и ответить на некоторый вопрос, И загрузить файл.

Вот шаги, которые я хотел бы выполнить:

  1. Пользователю предоставляется страница, содержащая форму со следующими полями: Имя, Описание, Селектор файлов.
  2. Файл сохраняется как большой двоичный объект, а идентификатор записывается вместе с именем и описанием.

У кого-нибудь есть примеры, как я мог бы поучиться, или учебное пособие, на которое вы могли бы мне указать? Один из Google показывает только загрузку файла и перенаправления на него.

Спасибо и извините за вопрос новичка!

Ответы [ 3 ]

5 голосов
/ 06 сентября 2010

http://demofileuploadgae.appspot.com/ - загрузка демо-версии в интернет-магазин.

Мой код для загрузки: http://code.google.com/p/gwt-examples/source/browse/trunk/DemoUpload/src/org/gonevertical/upload/#upload/server%3Fstate%3Dclosed

3 голосов
/ 05 августа 2010

Вот код, который я использую для загрузки изображений и связывания их со статьями.Самым сложным было получить идентификатор статьи, чтобы добраться до обработчика загрузки, я решил это, задав имя файла в качестве идентификатора статьи, чтобы обойти проблему.*http://fabien.seisen.org/python/urllib2_file/

1 голос
/ 12 ноября 2010

Вот как я это сделал. Это более прямолинейно, чем вы думаете. Обратите внимание на следующее, взятое из Обзор Blobstore . "Когда Blobstore переписывает запрос пользователя, части MIME загруженных файлов очищаются, а ключ blob добавляется в качестве заголовка части MIME. Все остальные поля формы и части сохраняются и передаются обработчик выгрузки . " В обработчике выгрузки вы можете делать все, что хотите, с другими полями формы.

    class Topic(db.Model):
        title = db.StringProperty(multiline=False)
        blob = blobstore.BlobReferenceProperty()
        imageurl = db.LinkProperty()

    class MainHandler(webapp.RequestHandler):
        def get(self):
            upload_url = blobstore.create_upload_url('/upload')
            self.response.out.write('<html><body>')
            self.response.out.write('<form action="%s" method="POST" enctype="multipart/form-data">' % upload_url)
            self.response.out.write("""Upload File: <input type="file" name="file"><br>
            <div><label>Title:</label></div>
            <div><textarea name="title" rows="1" cols="25"></textarea></div><input type="submit" 
                name="submit" value="Submit"> </form>""")
            self.response.out.write('<br><br><h2>TOPIC LIST</h2><table border="1"><tr><td>')
            for topic in Topic.all():                
                self.response.out.write('<div><img src="%s=s48"/>' % topic.imageurl)
                self.response.out.write('<div><b>Image URL: </b><i>%s</i></div>' % topic.imageurl)
                self.response.out.write('<div><b>Title: </b><i>%s</i></div>' % topic.title)
            self.response.out.write('</td></tr></table><br>') 
            self.response.out.write('</body></html>')

    class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
        def post(self):
            upload_files = self.get_uploads('file')  # 'file' is file upload field in the form
            blob_info = upload_files[0]
            topic = Topic()
            topic.title = self.request.get("title")
            topic.blob = blob_info.key()
            topic.imageurl = images.get_serving_url(str(blob_info.key()))
            topic.put()        
            self.redirect('/')
def main():
    application = webapp.WSGIApplication(
          [('/', MainHandler),
           ('/upload', UploadHandler),
          ], debug=True)
    run_wsgi_app(application)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...