2015-12-25 4 views
0

Моей форма такова:Как извлечь загруженное имя файла в POST?

<form name="mail-me" action="/mail-me.py" method="POST" enctype="multipart/form-data"> 
<input id='file' type='file' name='file' /> 

Я делаю это в Python (я использую родные привязки Google питон dev_appserver webapp2.RequestHandler):

fileH = self.request.POST["file"] 
print(fileH.name) 
print(fileH.type) 

и я получаю:

file 
application/octet-stream 

Файл, который я загружаю: wodim.conf, поэтому я должен получить wodim.conf вместо file. Что я делаю неправильно - как я это исправить, потому что я получаю:

Error: Server Error 
The server encountered an error and could not complete your request. 

Please try again in 30 seconds. 
+0

Что связано с ошибкой сервера с получением имени файла? Кажется несвязанным. –

ответ

0

Фигурные его, сделал: печать (реж (fileH)) - который дал мне список поддерживаемых атрибутов и filename является то, что я должен использовать, не 'файл'. Итак, print(fileH.filename) работает. Я получаю ошибку сервера, потому что Google-приложение-сервер разрешает только фиксированный список расширений (для загрузки не разрешено .exe). Если вы выполните: fname = fileH.file «файл» будет возвращен, и это вызовет проблемы, так как оно не имеет расширения (следовательно, сообщение об ошибке).

0

request.FILES['filename'].name

Из документации request.

Вы можете перебирать файлы:

for filename, file in request.FILES.iteritems(): 
    name = request.FILES[filename].name 
+0

umm .. это ссылка на документы Django framework. Я не использую это. Я использую встроенные облачные привязки google python 'webapp2.RequestHandler' –

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