2012-01-30 3 views
0

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

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; 
    } 

Спасибо!

ответ

1

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

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

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

вы можете получить доступ к ид, как data.id (имя ключа в объекте JSon)

2

Рендеринг 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.

Смежные вопросы