2014-02-03 3 views
1

У меня возникли проблемы с управлением звуковым файлом, отправленным кордорой на сервер grails, чтобы преобразовать его в байты, потому что я не знаю, как восстановить аудио, отправленное на мой 'audioDeal "метод, я попытался с помощью params.fileName, params.options ...: CordovaКак управлять файлом, отправленным на мои графы

ft.upload(currentPath, "http://blablabla:8080/audio/audioDeal", function (result) { 
}, 
    function (error) { 
    console.log('Error uploading file ' + currentPath + ': ' + error.code); 
}, 
{ fileName: currentName }); 

Мой домен Файл имеет байт [] аудиофайл. Мой «данные» будет мой объект, должен содержать имя, размер и т.д.

def audioDeal() { 
    if (params.data) { 
    def data = params.data 
    def audio = new Test(audioFile: data.getBytes(), audio_name: data.name, id: data.id); 
    audio.save(flush: true); 
    println('ok') 
    } else println('not ok') 
} 

Мой URL отображения:

"/audio/" { 
    controller = "testRest" 
    action = [POST: "audioDeal", GET: "audioDeal", PUT: "audioDeal"] 
} 

Делая это, это правильный способ хранения файла в массив байтов? Любые комментарии, советы, объяснения по этому поводу, было бы неплохо ...

+0

http://grails.org/doc/2.2.1/guide/theWebLayer.html#uploadingFiles рассказывает вам, как это сделать. – TomW

+0

@TomW Я не использую поддержку Grails 'MultipartHttpServletRequest' через' .gsp'. – fsi

+0

MultipartHttpServletRequest должен работать даже без .gsp-cordova, который должен отправлять этот запрос, поэтому код контроллера в документах должен работать, я думаю (например, using request.getFile ('file') - я думаю, что «файл» - это ключ по умолчанию, отправленный Кордоной). – TomW

ответ

0

Вы можете использовать метод data.transferTo (новый файл ('файл')) или прочитать байты из data.inputStream

+0

Фактически @TomW был прав, используя getFiles ('файл'). Спасибо, в любом случае! – fsi

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