将视频从手机上传到Google App Engine Blobstore

时间:2013-05-08 00:42:03

标签: python google-app-engine video mobile google-cloud-datastore

我在Google App Engine上使用Python作为视频共享桌面/移动网络应用的后端。我在从iPhone上传到blobstore时遇到问题。通常在创建上传URL后页面会重定向,但这不会在手机上发生。相反,浏览器会导航到上传网址,但不会上传任何内容。

我可以选择要上传的视频,如果是长视频,手机需要一段时间才能导航到下一页,这似乎暗示正在传输某些内容,但blobstore中没有任何内容。< / p>

使用以下Python代码上传视频。

class UploadPage(webapp2.RequestHandler):
  def get(self):
  upload_url = blobstore.create_upload_url('/uploadvideo')
  template_values = {
      'upload_url': upload_url,
  }

  template = JINJA_ENVIRONMENT.get_template('upload.html')
  self.response.write(template.render(template_values))

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
  upload = self.get_uploads()[0]
  video = Videos(content=upload.key())
  video.title = self.request.get('title')
  video.description = self.request.get('description')
  video.ratingDown = 0
  video.ratingUp = 0
  video.creator = users.get_current_user().nickname()
  uniuqeIDFound = False
  newID = random.randint(1000,9999)
  while(uniuqeIDFound == False):
    vids = db.GqlQuery("SELECT * "
                       "FROM Videos ")
    uniuqeIDFound = True                      
  for v in vids:
    if (v.videoID == newID):
      newID = random.randint(1,10000)
      uniuqeIDFound = False
  video.videoID = newID   
  db.put(video)
  self.redirect('/home')

上传页面本身就是这样。

<!DOCTYPE html>
<html>
<head>
<title> Upload </title>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="/stylesheets/bootstrap.css" />
<link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>
<body>
<div class="fill">
<div class="container">
    <ul class="nav nav-tabs">
        <li><a href="/home" data-toggle="tab">Home</a></li>
        <li class="active"><a href="/upload" data-toggle="tab">Upload Video</a></li>
        <li><a href="/logout" data-toggle="tab">Logout</a></li>
        <li><a href="/contact">Contact Us</a></li>
    </ul>
    <h2 class="addColor">Tribal Knowledge</h2><h3 class="addColor">Upload a Video</h3>
    <form class="form-horizontal" action="{{ upload_url }}" method="POST"  enctype="multipart/form-data">
        <textarea placeholder="Title..." name="title" cols="50" rows="1" autofocus="autofocus" required></textarea><br>
        <textarea placeholder="Description..." name="description" cols="50" rows="4" autofocus="autofocus"></textarea><br>
        Upload File: <input type="file" name="file"><br> <input class="btn btn-success" type="submit" name="submit" value="Upload Video">
    </form>
</div>
</div>
</body>
</html>

0 个答案:

没有答案