将XML文件上传到Google App Engine DataStore

时间:2012-04-04 03:46:02

标签: google-app-engine google-cloud-datastore

我正在寻找从网页上传XML文件到GAE DataStore的最佳方法。稍后将通过Web界面解析和修改XML。到目前为止,我使用的是文件类型为form的HTML input

<form enctype="multipart/form-data" action="update" method="post" > 
  <input type="file" name="myfile" /> 
  <input type="submit" /> 
</form>

在servlet类中,我使用for循环将数据读入String

InputStream input = req.getInputStream();
StringBuffer sb = new StringBuffer(""); 

int c = -1;
while ( (c = input.read() ) != -1 ) 
{
  char ch = (char) c;
  sb.append( ch );
}

然后我检查DataStore是否包含具有应用程序硬编码密钥值的实体,如果不是,我创建一个新实体并将XML上传到Textcom.google.appengine.api.datastore.Text),否则我创建一个新实体并且把文件放在那里。那可以称之为好方法吗?

此致 斯登

1 个答案:

答案 0 :(得分:2)

如果您使用带有type="file"字段的html表单,则浏览器将通过带有multipart/form-data content type的http POST上传文件。

请参阅how to handle properly multipart content data上的AppEngine文档。