2013-12-24 2 views
1

Используя приведенный ниже код,Read File из GAE Blobstore

class MainHandler(webapp.RequestHandler): 
    def get(self): 
     upload_url = blobstore.create_upload_url('/upload') 
     self.response.out.write('<html><body>') 
     self.response.out.write('<form action="%s" method="POST" enctype="multipart/form-data">' % upload_url) 
     self.response.out.write("""Upload File: <input type="file" name="file"><br> <input type="submit" 
      name="submit" value="Submit"> </form></body></html>""") 

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, resource): 
     resource = str(urllib.unquote(resource)) 
     blob_info = blobstore.BlobInfo.get(resource) 
     self.send_blob(blob_info) 

app = webapp.WSGIApplication(
    [('/', MainHandler), 
    ('/upload', UploadHandler), 
    ('/serve/([^/]+)?', ServeHandler), 
    ], debug=True) 

if __name__ == '__main__': 
    run_wsgi_app(app) 

я был в состоянии читать файлы как в формате .pdf, .txt, и медиа-файлы из моего блоба магазина. Но файлы типа .doc, .docx возвращают файлы, которые не читаются. Я пробовал использовать blob_reader, но все еще не работал, как я могу читать файлы, такие как .doc и .docx?

ответ

2

Ваш браузер не может обрабатывать файлы документов. Но вы можете скачать файл и открыть файл с помощью программы просмотра.

Чтобы скачать блоб, используйте:

self.send_blob(blob_info,save_as=True) 

или:

self.send_blob(blob_info,save_as='amsdoc.docx') 
+0

Большое спасибо. оно работает. –

Смежные вопросы