Отправка текстовой строки в URL-адрес магазина блогов App Engine - PullRequest
1 голос
/ 29 июня 2011

У меня есть кусок текста в большой строке, которую я динамически создаю в javascript в веб-приложении.Я хочу сохранить его в BLOB-магазине.Тем не менее, я не могу понять, как заставить это работать.Я создаю URL-адрес для публикации с помощью обычной команды blobstoreService.createUploadUrl ().

Одной из возможностей отправки моей строки в URL-адрес хранилища BLOB-объектов является использование jQuery.ajax:

jQuery.ajax({url:blobstore_url,contentType:'multipart/form-data',type:'POST',data:{file:mystring}})

Однако, когда я запускаю эту команду, я получаю ошибку AppEngine "java.lang.OutOfMemoryError: Java heap space".Попытка погуглить эту ошибку предполагает, что в данных моей формы отсутствует обязательный атрибут «имя», но я не могу понять, как указать это с помощью jQuery.ajax.

Другая возможность - использовать объект FormData браузера:

   formData = new FormData()
   formData.append("file",my_string)
   xhr = new XMLHttpRequest()
   xhr.open("POST", blobstore_url)
   xhr.send(formData)

Это работает нормально, но затем, когда мой «успешный» URL-адрес запускается хранилищем BLOB-объектов в моем серверном приложении AppEngine, список опубликованных BLOB-объектов становится пустым.Я предполагаю, что не могу просто добавить my_string к formData как объект файла, но мне нужно вместо этого сделать что-то еще.

Я знаю, что я очень близок к тому, чтобы это работало, но упускаю некоторые важные мелочи.Если кто-нибудь из вас сможет помочь мне разобраться, как исправить любой из двух описанных выше подходов, я был бы рад - Спасибо!

1 Ответ

3 голосов
/ 29 июня 2011

Я наконец-то нашел решение, которое будет работать после дополнительных усилий. Если кто-то еще наткнется на этот вопрос, если вы выполните действия, описанные в посте ниже, в интернет-магазине AppEngine примут ваши строковые данные:

Javascript: загрузка файла ... без файла

...