2013-05-24 3 views
0

Я пытаюсь прочитать входные данные (строка из файла, 2 ints из текстовых полей) из html в Google App Engine и поместить их в функцию. Секция входа:Извлечение ввода из html с POST

self.write('<form action="%s" method="POST" enctype="multipart/form-data">' \ 
        % os.environ['PATH_INFO']) 
     self.write('<input type="file" name="pdf_file" />') 
     self.write('<input type="text" name="generations" />') 
     self.write('<input type="text" name="legnthOfDay" />') 
     self.write('<input type="submit" value="Submit" />') 

Выходная часть будет многообещающе:

def post(self): 
     """Convert, parse and print text from converted PDF.""" 
     text = self.request.POST['pdf_file'].file.read() 
     lengthOfDay = int(text=self.request.POST['lengthOfDay']) 
     generations = int(text=self.request.POST['generations']) 
     sim = Simulation(text, generations, lengthOfDay 

текстовая строка вывода, взятый из примера онлайн, работает, но только если есть файл, как может Я поймаю его и продолжаю, если файл не указан? Следующие две строки, которые я написал, являются проблемой. Я действительно не знаю, какой запрос.POST [...] возвращает, так что это дает мне и как я могу извлечь из него ints?

+0

Вы должны проверить состояние/значение файла, прежде чем читать. –

+0

Как это сделать, я не уверен, что возвращает POST ['pdf_file'], поэтому я не знаю, как работает файл .file. – EasilyBaffled

+1

Вы можете выполнить некоторую базовую отладку. Вы не указали ошибку, когда нет файла. Это даст вам много подсказок. Вы не сказали, какие рамки вы используете, поэтому я собираюсь предположить, что это webapp2. Если это так, сделайте некоторое чтение о том, как обращаться с файлами http://webapp-improved.appspot.com/guide/request.html См. Раздел с отмеченными файлами. Но обычно вы можете просто использовать 'if', как в' if self.request.POST ['pdf_file']. File: ' –

ответ

1

= Вы не указали ошибку, когда нет файла.

Это даст вам много подсказок. Вы не сказали, какие рамки вы используете, поэтому я собираюсь предположить, что это webapp2.

Если это так, сделайте некоторое чтение о том, как обращаться с файлами. http://webapp-improved.appspot.com/guide/request.html См. Раздел помеченные файлы.

Обычно вы можете просто использовать, если, как в

if self.request.POST['pdf_file'].file: 
    # do something" 
Смежные вопросы