Статус: Участник
Группы: Участники
Зарегистрирован: 08.10.2018(UTC) Сообщений: 15 Сказал(а) «Спасибо»: 4 раз
|
Автор: vgNikoz Автор: Антонимиус Язык на сервере php Но клиент то работает с плагином. Собственно вопрос как передать фаил с сервера плагину? И как потом подписанный фаил вернуть на сервер? То есть плагин что возвращает форму с файлом и достаточно сделать ее пост? Есть простые примеры реализации? я взял пример https://www.cryptopro.ru...age/cades_bes_file.html, тут вся работа построена на js, вам нужны файлы Code.js, cadesplugin_api.js, для firefox нужен еще async_code.js Я работал через firefox поэтому вносил корректировки в файл async_code.js, там есть функция подписания файла SignCadesBES_Async_File. Получается, что вы работаете только в браузере, выбираете файл и ключ которым подписать. При загрузке файла он перекодируется в строку base64, затем эта строка подписывается ключем и возвращается этот же файл с подписью тоже в base64, для обратного преобразования этой строки я добавил функции в этот файл: Код:
function saveFile(Signature, file, mime) {
urltoFile(Signature, file, mime).then(function(file){
var data = new FormData();
data.append('file', file);
$.ajax({
type: 'POST',
url: '/ajax/test.php',
data: data,
cache: false,
dataType: 'json',
processData: false,
contentType: false,
success: function(response) {
console.log(response);
}
});
});
}
function urltoFile(url, filename, mimeType){
console.log(url);
return (fetch(url)
.then(function(res){return res.arrayBuffer();})
.then(function(buf){return new File([buf], filename, {type:mimeType});})
);
}
а в функции SignCadesBES_Async_File перед выводом этой строки подписанного файла в textarea добавил вызов saveFile('data:application/pdf;base64,' + Signature, 'test.pdf', 'application/pdf'); только нужно еще доделал определение формата загруженного файла и подставлять именно его. а в файле test.php я работаю с $_FILES и просто сохраняю файл здравствуйте! я кажется занимаюсь той же задачей, что и вы. только вы отправляете файл конкретного вида (pdf ) и подписываете его. а я использую универсальный подписыватель файлов. В вашем случае если хотите чтобы файл можно было просмотреть, нужно сначала снять с него подпись. Вы мне можете подсказать? то, что мы видем в текстовом поле - это получается присоединенная к файлу подпись закодированная в base64? Ее получается нужно раскодировать прежде, чем мы будем проверять правильность подписи любым онлайн сервисом, который проверяет подпись?
|