在Google AppEngine中上传和处理KML文件

时间:2012-03-21 19:47:14

标签: python google-app-engine file-upload

我无法找到这个问题的确切答案。

在我的应用中,我希望用户能够使用HTML表单上传KML文件。在服务器端,我想解析该文件并提取某些信息(lat,lon等)以存储在数据库中。

在我的HTML表单中,我有

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

在服务器端,我从解析中收到错误,表面上是因为文件被视为文件名字符串,而不是文件,所以没有什么可以解析。

2 个答案:

答案 0 :(得分:1)

我发现我需要在表单标记上放置一个enctype =“multipart / form-data”属性。然后在POST方法中,只需调用self.request.get(“datafile”)。这将返回xml字符串,我只需将其传递给parseString()。

答案 1 :(得分:0)

查看blobstore文档:http://code.google.com/appengine/docs/python/blobstore/overview.html

有一个例子与你正在做的类似。在UploadHandler中,您可以执行要执行的KML处理。如果处理巨大的KML文件需要很长时间,您可以考虑只允许将文件保存在blobstore中,并启动执行实际处理的Task。 (我对CSV文件做了类似的事情。)