2017-01-07 1 views
0

잘 업 로더의 축소판에 href를 추가하고 addInitialFiles 함수를 사용해야합니다. 내 문제는 각 파일을 추가 한 후 호출 할 이벤트 처리기가 없다는 것입니다.파일 업로드 프로그램에서 addInitialFiles 뒤에 호출 할 일부 이벤트

  callbacks:{ 
       onValidate: function(dados, buttonContainer) { 
        alert('onValidate'); 
       }, 
       onSessionRequestComplete: function(arr, response, success) { 
        alert('onSessionRequestComplete'); 
       }, 
       onComplete: function(id, name, response) { 
        alert('onComplete'); 
        if (response.success) { 
         var serverPathToFile = response.url+'/'+response.uuid+'/'+response.name, fileItem = this.getItemByFileId(id); 
         var viewTnh = qq(fileItem).getByClass("qq-thumbnail-link")[0]; 
         viewTnh.setAttribute("href", serverPathToFile); 
        } 
       } 
      }, 

...

  var numFiles = 0; 
      var prova = cVs['6'][p][a]['provas']['prova']; 
      $.each(cVs['30'][p], function(a){ 
       galleryUploader.addInitialFiles({ 
        numFiles:{ 
         "name":cVs['30'][p][a]["imagens_provas"]['ficheiro'], 
         "uuid":cVs['30'][p][a]["imagens_provas"]['uuid'], 
         "size":'111', 
         "thumbnailUrl":"uploads/Provas/users/Admin/"+prova+"/respostas/"+cVs['30'][p][a]["imagens_provas"]['uuid']+"/thumb_"+cVs['30'][p][a]["imagens_provas"]['ficheiro'], 
         "fileUrl":"uploads/Provas/users/Admin/"+prova+"/respostas/"+cVs['30'][p][a]["imagens_provas"]['uuid']+"/"+cVs['30'][p][a]["imagens_provas"]['ficheiro'], 
         "numero":"115" 
        } 
       }); 
       numFiles++; 
      }); 
+0

에서 ['addInitialFiles' API 방법 설명서 (HTTP를 읽어 보시기 바랍니다 .com/branch/master/api/methods.html # addInitialFiles). 메서드에 유효한 데이터를 전달하지 않습니다. 처음부터 바로 잡아야합니다. –

+0

고마워요, 레이. 지금 일하십시오! 나는 미래의 기억과 가능한 모든 sugestion을 위해 나의 해결책을 게시 할 것이다. 지금 내가해야 할 일을 설명하겠습니다. 서버는 두 순간에 사용되는 미리보기 이미지를 생성합니다. 이미지를 업로드 한 순간의 첫 순간에 미리보기 이미지가 생성됩니다 (업로드 된 이미지의 후 처리가 있기 때문에). – dcd4u2

+0

두 번째 순간은 세션 완료입니다. 내 실제 문제로 이동합니다. 축소판 그림이 표시되기에 이미지 렌더링을 우회해야하며 크기가 큰 이미지를 렌더링하는 데 2 ​​초 이상 걸립니다. 각 galery는 50 개 이하의 이미지를 가지고 있으며 이는 50 개 이미지 (각각 3 ou 4 kb)를 표시하는 데 2 ​​분 이상 걸린다는 것을 의미합니다. – dcd4u2

답변

0

결과 : //docs.fineuploader :

http://prntscr.com/dtvmob

 var galleryUploader = new qq.FineUploader({ 
      element: document.getElementById("fine-uploader-gallery"), 
      template: 'qq-template-gallery', 
      request: { 
       endpoint: 'modules.php?name=Logos_9&opt=30_put&prova='+cVs['6'][p][a]['provas']['prova'] 
      }, 
      session: { 
       endpoint: 'modules.php?name=Logos_9&opt=30a_get&prova='+cVs['6'][p][a]['provas']['prova'], 
       refreshOnReset: true 
      }, 
      thumbnails: { 
       placeholders: { 
        waitingPath: 'includes/FineUploader/placeholders/waiting-generic.png', 
        notAvailablePath: 'includes/FineUploader/placeholders/not_available-generic.png' 
       } 
      }, 
      validation: { 
       allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'] 
      }, 
      chunking: { 
       enabled: true, 
       partSize: 200000, 
       concurrent: { 
        enabled: true 
       }, 
       success: { 
        endpoint: 'modules.php?name=Logos_9&done&opt=30_put&prova='+cVs['6'][p][a]['provas']['prova'] 
       } 
      }, 
      deleteFile: { 
       //not yet 
      }, 
      scaling: { 
       sendOriginal: false, 
       sizes: [ 
        //{name: "small", maxSize: 100}, 
        {name: "", maxSize: 1684} 
       ] 
      }, 
      callbacks:{ 
       onSessionRequestComplete: function(response, success) { 
        if (success) { 
         $.each(response, function(a, obj) { 
          //response[a] ex. 
          //{ 
          // "id":"12", 
          // "name":"PROV02.jpg", 
          // "uuid":"aa60f02e-29a4-4826-96d3-39709b39a664", 
          // "size":"?", 
          // "aluno_id":1, 
          // "estado":"2", 
          // "thumbnailUrl":"uploads/Provas/users/User_n/1/respostas/aa60f02e-29a4-4826-96d3-39709b39a664/thumb_PROV02.jpg", 
          // "fileUrl":"uploads/Provas/users/User_n/1/respostas/aa60f02e-29a4-4826-96d3-39709b39a664/test_PROV02.jpg" 
          //} 

          var serverPathToFile = obj.fileUrl; 
          var viewTnh = document.getElementsByClassName('qq-file-id-'+a)[0].getElementsByClassName('qq-thumbnail-wrapper')[0].getElementsByClassName('qq-thumbnail-link')[0]; 
          viewTnh.setAttribute("href", serverPathToFile); 

          var number = obj.aluno_id; 
          var viewNum = document.getElementsByClassName('qq-file-id-'+a)[0].getElementsByClassName('qq-file-info')[0].getElementsByClassName('qq-numero')[0]; 
          viewNum.innerHTML = number; 

          if(obj.estado == "1") { 
           var corEstado = "background-color: #50FF00;"; 
           obj.estado = "2"; 
          } 
          else if(obj.estado == "2") { 
           var corEstado = "background-color: #FFFF00;"; 
           obj.estado = "3"; 
          } 
          else if(obj.estado == "3") { 
           var corEstado = "background-color: #FF0000;"; 
           obj.estado = "1"; 
          } 
          var viewTnh = document.getElementsByClassName('qq-file-id-'+a)[0]; 
          viewTnh.setAttribute("style", corEstado); 
         }); 
        } 
       }, 
       onComplete: function(id, name, response) { 
        if (response.success) { 

         //response ex. 
         //{ 
         //) "success":true, 
         // "uuid":"23d1612b-7d32-49ab-8157-dae3bf19be7a", 
         // "name":"PROV08.jpg", 
         // "url":"uploads/Provas/users/Admin/1/respostas", 
         // "student_id":7, 
         // "estado":"2" 
         //} 

         //PLACE LINK IN THUMBNAIL 
         var serverPathToFile = response.url+'/'+response.uuid+'/'+response.name, fileItem = this.getItemByFileId(id); 
         var viewTnh = qq(fileItem).getByClass("qq-thumbnail-link")[0]; 
         viewTnh.setAttribute("href", serverPathToFile); 

         //REDEFINE THE NEW THUMBNAIL IMAGEM 
         var serverPathToFile = response.url+'/'+response.uuid+'/thumb_'+response.name, fileItem = this.getItemByFileId(id); 
         var viewTnh = qq(fileItem).getByClass("qq-thumbnail-link")[0].getElementsByClassName('qq-thumbnail-selector')[0]; 
         viewTnh.src = serverPathToFile; 

         //SHOW STUDENT NUMBER IN THUMBNAIL 
         var number = response.student_id; 
         if(number <= 0) number = '???'; 
         var viewNum = qq(fileItem).getByClass('qq-file-info')[0].getElementsByClassName('qq-numero')[0]; 
         viewNum.innerHTML = number; 

         //CHANGE COLOR IN THUMBAIL 
         if(response.estado == "1") { 
          var corEstado = "background-color: #50FF00;"; 
         } 
         else if(response.estado == "2") { 
          var corEstado = "background-color: #FFFF00;"; 
         } 
         else if(response.estado == "3") { 
          var corEstado = "background-color: #FF0000;"; 
         } 
         var viewTnh = fileItem.getElementsByClassName('qq-thumbnail-wrapper')[0].parentNode; 
         viewTnh.setAttribute("style", corEstado); 

        } 
       } 
      }, 
      messages:{ 
       'onLeave':'Os ficheiros estão a ser carregados para o servidor, se sair agora o carregamento vai ser cancelado.', 
       'sizeError':'Free account are limited to: 29.297 GB, please login for more options', 
       'emptyError':'O ficheiro {file} está vazio' 
      } 
     });