2016-04-16 15 views
1

GAEを使用しているWebアプリケーションでアップロード機能を実装する時点で固まっています。/signupページに投稿すると、/ upload_fileページにリダイレクトされますが、エラーメッセージ405が表示されます。許可されません。アップロードフォームが表示されることを期待していました。Google App Engine:405メソッドこのリソースにはGETが許可されていません

(からいくつかのリファレンスを手に入れた:https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/blobstore/main.py

任意の助けに感謝!メインのPythonスクリプト内のコードの

パート:

class FileUploadFormHandler(BaseHandler): 
# BaseHandler is a subclass of webapp2.RequestHandler. 
    def get(self): 
     # create an upload URL for the form that the user will fill out 
     upload_url = blobstore.create_upload_url('/upload_file') 

     self.render('upload-file.html', upload_url = upload_url) 

class FileUploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 

     upload = self.get_uploads('file')[0] ## 'file' is a var in the upload-file.html 
     blob_key = upload.key() 
     blob_reader = blobstore.BlobReader(blob_key) # instantiate a BlobReader for a given BlobStore value. 
     locations = parsefile(blob_reader) 
     img_url = generate_url(locations=locations) 
     self.redirect('/view_map/%s' % img_url) 

app = webapp2.WSGIApplication([('/', Home), 
          ('/signup', Register), 
          ('/login', Login), 
          ('/logout', Logout), 
          ('/upload_file', FileUploadHandler), 
          ('/view_map/([^/]+)?', ViewMap) 
          ], 
          debug=True) 

答えて

-1

登録ページ/で提出した後、それがエラー405メソッドは許可されていません取得促しながら、/ upload_fileページにリダイレクト、およびIアップロードフォームが表示されることを期待していました。

私はここに問題があると思います。申し込み後、ページにリダイレクトされ、FileUploadHandlerにマッピングされます。('/upload_file', FileUploadHandler),。ここではFileUploadHandlerにはがありません。リダイレクトを処理する方法はです。

あなたが達成したかったのは、登録後にupload_fileテンプレート(アップロードフォームを含む)をレンダリングすることです。すでにロジック設定をclass FileUploadFormHandlerにしています。したがって、ルートをFileUploadFormHandler

にマップする必要があります。また、ユーザーが入力するフォームのアップロードURLを作成するときは、FileUploadHandlerへの呼び出しを処理するルートが必要です。

class FileUploadFormHandler(BaseHandler): 

    def get(self): 
     # upload_url handles the POST call to FileUploadHandler 
     upload_url = blobstore.create_upload_url('/upload') 
     self.render('upload-file.html', upload_url = upload_url) 

...

app = webapp2.WSGIApplication(
    [('/upload', FileUploadHandler), 
    ('/upload_file', FileUploadFormHandler), 
    ], debug=True) 

注::;)迅速なあなたのために

+0

ありがとうございますが、おそらくあまり混乱URLパスを考え出す必要があるような

お役立ち情報bolbstoreのサンプルコードは機能しますか?それ以外の場合は、更新する必要があります。 :) –

+0

あなたはどんな例を参照していますか? –

+0

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/blobstore/main.py –

関連する問題