скачать файлы с сервера (и получить сообщение об ошибке) - PullRequest
0 голосов
/ 19 марта 2012

Я следую этому уроку для загрузки файлов . Файлы успешно загружены. Но когда я попытался скачать этот файл. Тогда я получаю сообщение об ошибке. Загрузка docx/doc/ppt/pptx/txt файлов.

Ошибка UnicodeDecodeError: 'utf8' codec can't decode byte 0x9f in position 17: invalid start byte

Загрузка обработчика изображений

def get(self, id):
    event = Event.get_by_id(int(id))
    if event:
        #print event.file_type
        self.response.headers['Content-Type'] = event.file_type
        self.response.out.write(event.file_contents)

ОБНОВЛЕНИЕ № 3

Когда я печатаю blob_info.key(). Тогда я получаю 8QAnEy4nH2OOKM4KQvtF7g==. Без этих знаков /serve/8QAnEy4nH2OOKM4KQvtF7g URL работает. Но почему добавляется знак ==?

UploadHandler Класс

  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())

Проходящий боб ключ localhost:8080/serve/8QAnEy4nH2OOKM4KQvtF7g

ОБНОВЛЕНИЕ 2

Файл загружен с использованием UploadHandler. И Bob key также сохраняется в моей модели. Но ServeHandler не работает. Я получаю 404 Not Found.

ServeHandler

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)

URL webapp2.Route(r'/serve/([^/]+)?', handler=my.ServeHandler, name='server'), ОБНОВЛЕНИЕ 1

txt файлы работают просто отлично. Еще кое-что. Я не хочу печатать контекст файла на экран. Я хочу, чтобы когда пользователь нажимал на имя файла, этот файл загружался на компьютер Является ли это возможным? спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...