Имя файла в запросе POST в Google AppEngine - PullRequest
3 голосов
/ 06 ноября 2008

Учитывая HTML-форму ...

  <form id="mainform" action="/upload" enctype="multipart/form-data" method="post">
        <div>
            <input type="file" name="img"/>
        </div>
        <div>
            <input type="submit" value="Send">
        </div>
    </form>

... и обработчик ...

class Picture(db.Model):
  image = db.BlobProperty()

class Submission(webapp.RequestHandler):
    def post(self):
        picture = Picture()
        image = self.request.get("img")
        picture.image = db.Blob(image)
        picture.put()
        self.redirect('/')

... есть ли способ в обработчике получить имя файла, введенное пользователем для загрузки? В PHP я могу ссылаться на $ _FILES ['img'] ['name'], но я не вижу, какой синтаксис, если таковой имеется, будет работать с request.get. В другом вопросе другой автор использует подпрограмму javascript на своей html-странице для извлечения имени файла, которое пользователь выбирает каждый раз, когда происходит событие OnChange, и затем передает его отдельно в скрытом поле. Это необходимо? PHP, кажется, получает имя файла бесплатно.

1 Ответ

6 голосов
/ 06 ноября 2008

Я нашел решение в документации для модуля cgi :

picture.local_filename = self.request.POST[u'img'].filename

Объект запроса POST является коллекцией FieldStorage, а объекты FieldStorage имеют атрибут имени файла.

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