2013-07-21 2 views
0

저는 Google App Engine을 Python으로 사용하고 있습니다. 사용자가 basic example에 따라 제대로 작동하는 동영상을 업로드 할 수있게하려면 다음을 할 수 있기를 바랍니다. 제목, 카테고리 및 업로드하는 동안 요약과 같은 비디오에 대한 추가 정보를 사용자에게 추가하게하십시오. 비동기 업로드를 할 수있는 방법이있어 사용자가 동영상을 업로드하는 전체 시간을 기다릴 필요가 없습니다.동영상을 GAE Blobstore에 업로드하고 업로드하는 동안 입력 받기

나는 create_upload_url_async() 메소드에 대해 알고 있지만 그게 내가 시도하고있는 것을하지 않는다.

지금 나는 다음과 같은 업로드 및 서비스를 제공하지만 업로드하는 동안 사용자가 UploadHandler와 동일한 화면에 정보를 추가 할 수있는 중간 단계를 만들고 싶습니다.

class VideoHandler(BlogHandler): 
    def get(self):  
     user = self.get_user() 
     upload_url = blobstore.create_upload_url('/uploadingvideo') 
     self.render('videohandler.html', user=user, upload_url=upload_url) 

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] 
    self.redirect('/serve/%s' % blob_info.key()) 

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler): 
    def get(self, blob_key): 
     blob_key = str(urllib.unquote(blob_key)) 
     if not blobstore.get(blob_key): 
      self.error(404) 
     else: 
      self.send_blob(blobstore.BlobInfo.get(blob_key)) 

필요한 경우 추가 정보를 제공해 주어 기쁩니다.

답변

0

이 문제는 나를 너무 괴롭혔다. 해결책은 얼룩 형상 주위에 양식을 만드는 것입니다.

다음은 블롭 저장소에 데이터를 제출하는 방법에 대한 Google의 예입니다.

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] 
    self.redirect('/serve/%s' % blob_info.key()) 

코드 하단의 자체 리디렉션 비트를 제거하고 양식을 처리하는 코드를 추가하십시오. 장고 템플릿

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] 

greeting = Greeting() 

if users.get_current_user(): 
greeting.author = users.get_current_user() 
greeting.video = str(blob_info.key()) 
greeting.content = self.request.get('content') 
greeting.put() 

양식은 다음과 비슷한 모습이 될 것이

form action="{{ upload_url }}" enctype="multipart/form-data" method="post"> 

textarea name="content" placeholder="write something about this video.." tabindex="1" rows="2" cols="40"></textarea> 

input name="file" type="file" > 

input name="submit" type="submit" value="Submit" /> 

/form> 

당신이 그것을 가지고있다. 이 도움이되기를 바랍니다.