Проблема с загрузкой файла с помощью ajax в appengine - PullRequest
0 голосов
/ 07 февраля 2011

Мне нужно отправить содержимое файла на веб-сервис Spring с Ajax в приложении Google AppEngine. Поэтому я использовал плагин jquery ajaxFileUpload .

<form id="load_form" action="" enctype="multipart/form-data">       
    <input name="file" type="file" id="upload_files" value="Browse"/>
    <input type="button"" id="upload_file" value="Load file"/>
</form>

JavaScript выглядит так:

$("#upload_file").click(function(){

        $.ajaxFileUpload
        (
            {
                url: '/myproject/uploadFile.json',
                secureuri: false,
                fileElementId: 'upload_files',
                dataType: 'json',
                success: function (data, status) {
                    alert("OK");
                },
                error: function (data, status, e) {
                    alert("Error");
                }
            }
        );

        return false;
    });

и в контроллере:

@RequestMapping(value="/uploadFile.json", method=RequestMethod.POST)
public Map<String, Object> readFile(
        @RequestParam(value = "file", required=false) MultipartFile file,
        Model model) throws Exception{
    ...
}

Проблема, с которой я столкнулся, заключается в том, что я не получаю в параметре файла содержимое файла (оно всегда равно нулю), и с помощью firebug я вижу, что отправляю содержимое файла в параметре, называемом «файл». ». Но я не получаю их, хотя этот метод вызывается (у меня есть точка останова, и она останавливается в нем). Если я удаляю required = false из параметра файла, выдается ошибка 400, поэтому он выглядит так, как будто не может найти параметр файла.

Я использую Spring 3.0.4.

Есть идеи о том, что может происходить?

Спасибо.

1 Ответ

1 голос
/ 07 февраля 2011

Если в этом случае вы ориентируетесь на результат, вы можете использовать пользовательский сервлет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...