1

ビデオ共有用のデスクトップ/モバイル Web アプリのバックエンドとして、Google App Engine で Python を使用しています。iPhone からブロブストアへのアップロードで問題が発生しています。通常、アップロード URL が作成された後にページがリダイレクトされますが、これは電話では起こりません。代わりに、ブラウザはアップロード URL に移動しますが、何もアップロードされません。

アップロードするビデオを問題なく選択できます。長いビデオの場合、電話が次のページに移動するのにしばらく時間がかかります。これは、何かが転送されていることを意味しているように見えますが、ブロブストアには何もありません。

動画は次の 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>
4

0 に答える 0