Guest User

Untitled

a guest
Jun 13th, 2017
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 8.60 KB | None | 0 0
  1. <!-- Пытался всё исправить, но сделал всё только хуже: Вадим -->
  2.     <script>
  3.         var splitByLastDot = function(text) {
  4.             var index = text.lastIndexOf('.');
  5.             return [text.slice(0, index)]
  6.         }
  7.         var glPATH, downloadLINK, downloadPDF, TOCKEN;
  8.         $(function() {
  9.             var postArray = {
  10.                 'FILE_LINK': '<?=$_REQUEST['FILE_LINK']?>' //ссылка для скачивания файла
  11.             };
  12.             $.ajax({
  13.                 type: 'POST',
  14.                 data: postArray,
  15.                 url: '/cryptopro/download_file.php', //данный PHP код выполяняет скачивание файла из Alfresco и сохраняет на нашем PHP сервере
  16.                 success: function (data) {
  17.                     $('#my_file_name').text(data); //выводим имя файла на странице
  18.                     glPATH = $('#my_file_path').text()+$('#my_file_name').text(); //абсолютный путь до файла на сервере (нашем)
  19.                     downloadLINK = '/cryptopro/'+$('#my_file_name').text(); //относительный путь до файла
  20.                     $('#OldFileLINK').attr("href", downloadLINK);
  21.                     $('#OldFileLINK').text('Скачать'); //выводим ссылку для скачивания исходного файла
  22.  
  23.                     var myString = $("#my_file_name").text().split(".").pop(); //берем формат файла
  24.                     if (myString != 'pdf') {
  25.                         downloadPDF = downloadLINK;
  26.                         downloadPDF = splitByLastDot(downloadPDF)+'.pdf';
  27.                         $('#PDFFileLINK').attr("href", downloadPDF);
  28.                         $('#PDFFileLINK').text('Скачать'); //собственно, если формат файла был изначально PDF, нам не нужно его конвертировать в PDF
  29.                         //конвертация в PDF, насколько я помню, тоже лежит в файле download_file.php
  30.                     }
  31.                     downloadLINK = '.' + downloadLINK.slice(10);
  32.  
  33.  
  34.                     $("#MyBtn").click(function () {
  35.                         var user, password;
  36.                         var reslink;
  37.                         user = $('#UserName').val();
  38.                         password = $('#UserPassword').val();
  39.                         var postArray = {
  40.                             'USER_NAME': user, //на странице присутствуют поля для ввода, нам нужен логин и пароль для скачивания и загрузки файлов c/из Alfresco
  41.                             'PASSWORD': password
  42.  
  43.                         };
  44.                         $.ajax({
  45.                             type: 'POST',
  46.                             data: postArray,
  47.                             url: '/cryptopro/get_tocken.php', //Работа с Alfresco ведется через TOCKEN. Он выдается по логину+паролю. Данный PHP код отвечает за это
  48.                             success: function (data) {
  49.                                 var currentdate = new Date();
  50.                                 TOCKEN = data;
  51.                                 $('#UserName').attr('disabled', true);
  52.                                 $('#UserPassword').attr('disabled', true);
  53.                                 var fileNameMY;
  54.                                 fileNameMY =  $('#my_file_name').text();
  55.                                 var postArray = {
  56.                                     'FILE_NAME' : fileNameMY,
  57.                                     'YEAR' : currentdate.getFullYear(), //YEAR и FILE_NAME нужны чтобы все файлы загружались по следующему пути
  58.                                     // ГОД/08-Подписанные_файлы/ИМЯ_ДОКУМЕНТА/файлы
  59.                                     'TOCKEN' : TOCKEN,
  60.                                     'USER_NAME' : user,
  61.                                     'PASSWORD' : password
  62.                                 };
  63.                                 $.ajax({
  64.                                     type: 'POST',
  65.                                     data: postArray,
  66.                                     url: '/cryptopro/send_to_alfresco.php',
  67.                                     success: function (data) {
  68.                                         reslink = data;
  69.                                         var postArray = {
  70.                                             'FILE_NAME' : fileNameMY
  71.                                         };
  72.                                         $.ajax({
  73.                                             type: 'POST',
  74.                                             data: postArray,
  75.                                             url: '/cryptopro/delete_files.php',
  76.                                             success: function () {
  77.                                                 //В ответе приходит путь до файла, по факту - мы подставляем этот путь в ссылку и редиректим туда пользователя
  78.                                                 // (открывается детальный просмотр ПОДПИСАННОГО документа)
  79.                                                 window.open("http://10.1.4.11:8080/test/page/site/mpnas/document-details?nodeRef="+reslink, "_top");
  80.  
  81.                                             }
  82.                                         });
  83.                                     }
  84.                                 });
  85.  
  86.                             }
  87.                         });
  88.                         var postArray = {
  89.                             'FILE_PATH': downloadLINK
  90.                         };
  91.                         $.ajax({
  92.                             type: 'POST',
  93.                             data: postArray,
  94.                             //На странице лежит скрытый текстбокс, в него нужно положить BASE64 содержимое файла (так он его подписывает, брал с примера)
  95.                             url: '/cryptopro/base64-file.php',
  96.                             success: function (data) {
  97.                                 $("#DataToSignTxtBox").text(data);
  98.                                 Common_SignCadesBES('CertListBox');
  99.                             }
  100.                         });
  101.                         //FileName - имя PDF файла, который нам нужно пометить подписью (Watermark)
  102.                         fileName = $('#my_file_name').text();
  103.                         fileName = splitByLastDot(fileName)+'.pdf';
  104.                         var currentdate = new Date();
  105.                         //datetime - это подпись, которая ставится на PDF файлик (на каждой странице, снизу)
  106.                         var datetime = "Время подписи: " + currentdate.getDate() + "/"
  107.                             + (currentdate.getMonth()+1)  + "/"
  108.                             + currentdate.getFullYear() + " @ "
  109.                             + currentdate.getHours() + ":"
  110.                             + currentdate.getMinutes() + ":"
  111.                             + currentdate.getSeconds();
  112.  
  113.                         //Берем ФИО человека, на которого оформлена ЭЦП. В файле будет ФИО+стока, полученная выше
  114.                         var watertext = $( "#CertListBox option:selected" ).text() + '\\n' + datetime;
  115.  
  116.                         var postArray = {
  117.                             'FILE_NAME' : fileName,
  118.                             'TEXT' : watertext
  119.                         };
  120.                         $.ajax({
  121.                             type: 'POST',
  122.                             data: postArray,
  123.                             url: '/cryptopro/fpdf_ru_test.php',//тот самый код, который отвечает за WATERMARK подпись файла
  124.                             success: function () {
  125.                                 $('#PDFsignFileLINK').attr("href", '/cryptopro/signed-'+fileName);
  126.                                 $('#PDFsignFileLINK').text('Скачать');
  127.                             }
  128.                         });
  129.                     });
  130.                 }
  131.             });
  132.         });
  133.     </script>
Add Comment
Please, Sign In to add comment