2014-12-09 3 views
2

이 uplaod에 대한 이미지를 업로드하고 데모를 만들고 GAE Blobstore API를 읽으 려합니다.Google App Engine 업로드 이미지 Blobstore

내 문제는 이미지 파일을 제출할 때 오류가 발생합니다. AttributeError : 'UploadHandlerDemo'객체에 'get'속성이 없지만 Blob 클래스가 데이터 스토어에 이미 생성되었습니다. 이 문제를 어떻게 해결할 수 있습니까? 여기

내 코드 :

여기
class FileUploadDemo(webapp2.RequestHandler): 
    def get(self): 
     from google.appengine.ext import blobstore 
     upload_url = blobstore.create_upload_url('/admin/upload') 
     logging.info(upload_url) 
     blob = blobstore.BlobInfo.all().get() 
     logging.info(blob.filename) 
     content = {"upload_url":upload_url} 
     HelperGlobal.render_template(self, 'blobstoreDemo.html', content) 

내 UploadHandler :

from google.appengine.ext.webapp import blobstore_handlers 
class UploadHandlerDemo(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 
     upload_files = self.get.uploads('file') 
     blob_info = upload_files[0] 
     logging.info(blob_info) 
     self.redirect('/admin/serve/%s' % blob_info.key()) 

데이터 저장소 경로에서 나는 BlobInfoBlobUplaodSessions했다 그들은 벌금을 보이는 있습니다.

HTML 부분에서는 GAIN Blobstore 예제를 JINJA의 도움으로 upload_url 데이터로 렌더링 한 단일 HTML로 변환합니다. 여기

간단한 데모에 대한 나의 HTML 코드 :

<html> 
<body> 
<form action="{{upload_url}}" method="POST" enctype="multipart/form-data"> 
Upload File: <input type="file" name="file" id="UniqueFile"> 
      <br> 
      <input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 

내가 제출 '버튼을 누르면, 그것은 이미지를 대응 BlobInfo 엔티티를 생성하지만 서버가 코드 500 오류를 가져오고 말한다 :

AttributeError : 'UploadHandlerDemo'객체에 'get'속성이 없습니다.

많은 시도를했지만 stackoverflow가 보이지만 해결책을 얻을 수 없습니다.

+0

에 그것은의에서 UploadDemoHandler 클래스에 구문 오류가 있음을 수치이다 elf.get.uploads, self.get_uploads 여야하며이 데모 코드가 작동합니다. 추가 답변은 필요하지 않지만 나와 같은 초보자에게 유용 할 수 있습니다. –

답변

0

AttributeError :

upload_files의 =의 self.get.uploads ('파일')

은 미보기 : 'UploadHandlerDemo'개체가 어떤 속성 'GET'

그것은 아마이 줄을 참조있어이 없습니다 나머지 코드는 UploadHandlerDemo에서 제발.

"get"속성을 설정 했습니까? 나는 당신이 self.get.uploads ('file')로 무엇을하려하는지에 대해 정말로 확신하지 못한다. self (UploadHandlerDemo)에서 get 객체를 호출하고 있습니까? get 객체는 업로드 (파일) 메소드를 소유해야합니다.

1

생각 : upload_files의 =의 self.get.uploads ('파일')

가 있어야한다 : upload_files의 =의 self.get_uploads ('파일')

1

는이

upload_files = self.get.uploads('file') 
를 교체해야

upload_files = get_uploads('file')