将文本字符串发布到 App Engine blobstore url
我在网络应用程序中用 javascript 动态创建的大字符串中有一大块文本。我想将其保存到 blob 存储中。但是,我不知道如何让它发挥作用。我正在使用常用的 blobstoreService.createUploadUrl() 命令创建要发布到的 URL。
将字符串发布到 blobstore url 的一种可能性是使用 jQuery.ajax:
jQuery.ajax({url:blobstore_url,contentType:'multipart/form-data',type:'POST',data:{file:mystring}})
但是,当我运行此命令时,我收到 AppEngine 错误“java.lang.OutOfMemoryError:Java 堆空间”。谷歌搜索此错误表明我的表单数据缺少所需的“名称”属性,但我无法弄清楚如何使用 jQuery.ajax 来指定它。
另一种可能性是使用浏览器的 FormData 对象:
formData = new FormData()
formData.append("file",my_string)
xhr = new XMLHttpRequest()
xhr.open("POST", blobstore_url)
xhr.send(formData)
这运行良好,但是当我的 AppEngine 服务器应用程序中的 blobstore 触发我的“成功”url 时,发布的 blob 列表为空。我假设我不能只将 my_string 作为文件对象附加到 formData,而是需要执行其他操作。
我知道我已经非常接近完成这项工作,但缺少一些重要的小细节。如果你们中的任何人可以帮助我弄清楚如何解决上述两种方法中的任何一种,我会很高兴 - 谢谢!
I have a chunk of text in a big string I create dynamically in javascript in a web app. I want to save it to the blob store. However, I can't figure out how to make it work. I am creating the URL to post to with the usual blobstoreService.createUploadUrl() command.
One possibility for posting my string to the blobstore url is to use jQuery.ajax:
jQuery.ajax({url:blobstore_url,contentType:'multipart/form-data',type:'POST',data:{file:mystring}})
However, when i run this command I get the AppEngine error "java.lang.OutOfMemoryError: Java heap space". Googling this error suggests my form data is missing the required "name" attribute, but I cannot figure out how to specify this using jQuery.ajax.
Another possibility is to use the browser's FormData object:
formData = new FormData()
formData.append("file",my_string)
xhr = new XMLHttpRequest()
xhr.open("POST", blobstore_url)
xhr.send(formData)
This runs fine, but then when my "success" url is triggered by the blobstore in my AppEngine server app, the list of posted blobs is empty. I assume I can't just append my_string to the formData as a file object but need to do something else instead.
I know I'm extremely close to having this working, but am missing some important little detail. If any of you can help me figure out how to fix either of the two approaches above I would be elated- Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我终于找到了一个经过更多努力后有效的解决方案 - 对于遇到这个问题的其他人,如果您按照下面帖子中的步骤进行操作,AppEngine blobstore 将接受您的字符串数据:
Javascript:上传文件...没有文件
I finally figured out a solution that works after more effort- For anyone else stumbling accross this question, if you follow the steps in the post below the AppEngine blobstore will accept your string data:
Javascript: Uploading a file... without a file