2015-05-12 3 views
0

Я пытаюсь загрузить документ Word, который я получаю в качестве строки base64 из своих веб-сервисов.AngularJS Загрузить данные привязки

На моей странице html я прошу пользователя ввести некоторые данные, чтобы заполнить это слово, и когда пользователь нажимает кнопку, я хотел бы загрузить документ слова.

Кнопка -> Отправить веб-сервис -> Создать текстовый документ -> Отправить назад base64 -> Загрузить base64 как документ слова

Я использую Downloadify, чтобы сделать это возможным в IE9

Проблема заключается в том, что Downloadify запрашивает имя файла и данные на загрузке страницы. Я получаю эту информацию только после ввода пользователем данных на одной странице.

Downloadify.create('downloadify', { 
    filename: filename, 
    data: data, 
    onComplete: function() { 
     alert('Your File Has Been Saved!'); 
    }, 
    onCancel: function() { 
     alert('You have cancelled the saving of this file.'); 
    }, 
    onError: function() { 
     alert('You must put something in the File Contents or there will be nothing to save!'); 
    }, 
    transparent: false, 
    swf: 'js/lib/Downloadify/media/downloadify.swf', 
    downloadImage: 'js/lib/Downloadify/images/download.png', 
    width: 100, 
    height: 30, 
    transparent: true, 
    append: false 
}); 

Есть ли способ привязать имя файла и данные? Или мне нужно добавить еще одну страницу, которая уже получит все данные, и просто попросит «Сохранить на диске»?

ответ

0

Возможно, вы можете использовать IIFE, например.

filename: (function(){return $('#file-name-input').val();}())

Я предполагаю, что Downloadify будет делать это поиск только в момент сохранения файла, даже если это требует, чтобы это было объявлено заранее.

В противном случае не запустите Downloadify.create(), которая генерирует кнопку загрузки до тех пор, пока необходимые текстовые поля не будут заполнены и не подтверждены.

btw, в Downloadify docs, они упоминают, что вы можете сделать свойство свойства data функцией. Примером может служить

data: function() { return "data that comprises the file contents"; }

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