Как вернуть значение при загрузке Ajax-файла - PullRequest
0 голосов
/ 30 января 2012

Я использую плагин Ajax upload для загрузки файла через Ajax.Он работает нормально, файл успешно загружен, и я могу получить доступ к его содержимому в событии onComplete. Теперь я хочу вернуть идентификатор базы данных загруженного файла. Как я могу отправить идентификатор базы данных с моего контроллера пружины в функцию onComplete?
Вот мой JS

  new Ajax_upload('#clickToUpload', {
        action: '/portal/request/MRNFile/upload',
        allowedExtensions: ['csv','jpeg'], 
        onComplete : function(file){
            $('#progress').text('Uploaded ' + file + '. ');
                    //how to access database id here
        }       
    });

Контроллер

 @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public Integer upload(@RequestParam("userfile") MultipartFile file) {
    // This will save file to database and will return its id
         return id;
    }  

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Выполните рендеринг echo или любым другим способом в отношении идентификатора файла на стороне сервера, и он вернется в ваш file var в JS.

Если вы хотите вернуть и контент, и идентификатор, используйте

echo json_encode(array('content' => 'content', 'id' => 'yourId'));

И в js получить к нему доступ через file.content и file.id после file = JSON.parse(file);

Если вы не используете PHP, просто верните JSON-кодированный массив с двумя ключами - id иcontent.

1 голос
/ 30 января 2012

Вместо возврата идентификатора в функции загрузки (контроллера) вы должны вернуть объект json , как показано ниже

JSONObject json = new JSONObject();
json.put("id", database_id);
return json;

и изменить onComplete: функция (файл) для onComplete: функция (файл, данные)

Вы можете получить доступ к идентификатору как data.id (имя ключа в объекте json)

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