2011-11-20 44 views
1

我嘗試通過兩個步驟從表單加載文件,並使用BlobStoreUploadHandler。 在第一步,我用請求處理程序重新獲取表單數據,並檢查它是否有效(表單action =「/ a」)。然後,如果表單有效,我想將表單操作重寫爲upload_url,其中如何在谷歌appengine中調用請求處理程序,python

upload_url = blobstore.create_upload_url('/a') 

並用新的path_info調用post請求。如何通過更改path_info調用請求?

class SendFormwithFile(webapp.RequestHandler): 
    ... 
    def post(self): 
     ... 
     if form.is_valid(): 
      self.request.path_info = upload_url 

     else: 
      ... 
      return form with error message 
      ... 

回答

1

對於blobstore有一個新的writing files實驗代碼,它可能適合您的需求。報價:

的App Engine可讓您以編程方式創建Blob存儲斑點,提供了一個類似文件的API,你可以用它來讀取和寫入斑點

+0

這是解決我的問題的最好辦法,謝謝。 – Raf

0

我不是100%肯定,爲什麼你需要先用請求處理程序處理這個問題。

下面是我使用的最初發布作爲一個回答我的問題示例代碼:

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 
     try: 
      upload_files = self.get_uploads('file') 
      blob_info = upload_files[0] 

      newFile = StoredFiles() 
      newFile.nickname = self.request.get('nickname') 
      newFile.blobkey = blob_info.key() 
      newFile.put() 

      self.redirect('/') 
     except: 
      self.redirect('/upload_failure.html') 

您可以撥打表單驗證請求處理程序中的Blob存儲和轉移到根據驗證是否通過不同的路徑或不。

這裏的鏈接到提問/回答更多的細節:Need help processing upload form with Google App Engine Blobstore

相關問題