2012-03-21 4 views
0

Мне не удалось найти точный ответ на этот вопрос.Загрузите и обработайте файл KML в Google AppEngine

В моем приложении я хочу, чтобы пользователь мог загрузить файл KML с помощью HTML-формы. На стороне сервера я хочу проанализировать этот файл и вытащить определенную информацию (lat, lon и т. Д.), Которая будет храниться в базе данных.

В моей HTML форме у меня есть

<input type="file" name="datafile" size="40" /> 

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

ответ

0

Посмотрите на Blobstore документы: http://code.google.com/appengine/docs/python/blobstore/overview.html

Существует пример есть, похожее на то, что вы делаете. В UploadHandler вы можете выполнить обработку KML, которую хотите сделать. Если для обработки гигантского файла KML потребуется много времени, вы можете подумать о том, чтобы сохранить файл в блочном блоке и запустить задачу, которая выполняет фактическую обработку. (Я сделал аналогичную вещь с файлами CSV.)

+0

Большое спасибо за ответ. Мой файл довольно короткий (~ 50 строк). Я выяснил, что я сделал неправильно (см. Ниже). – mkc

1

Я обнаружил, что мне нужно было поместить атрибут enctype = "multipart/form-data" в мой тег формы. Затем в методе POST просто вызовите self.request.get («файл данных»). Это возвращает строку xml, которую мне просто нужно передать parseString().

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