2017-10-24 12 views
7

내 클라이언트가 오래된 classipress 버전을 사용하고 있습니다. 여기에 github repo이 있지만 사용하는 것은 훨씬 오래되었습니다. 최신 Wordpress 버전 실행. plupload과 함께 제공되는 일부 이전 버전의 테마에서 해당 버전을 찾을 수 없습니다. 여기에 Functions.php입니다. 여기에 plupload입니다. Here's the html of my page, 필요는 없지만 페이지가 보호되어 있으므로 원하는 경우 전체 코드를 검사 할 수있는 유일한 방법입니다.업로드시 업로드 수 제한

은 내가

add_filter('appthemes_plupload_config', 'enable_plupload_multisel', 10 ,1); 
function enable_plupload_multisel($app_plupload_config){ 
$app_plupload_config['plupload']['multi_selection'] = true; 
return $app_plupload_config; } 

를 functions.php에 this를 추가, 그렇게하기 위해, 같은 시간에 여러 장의 사진을 업로드 할 수있는 기능을 추가 할하지만 업로드에서 사용자를 중지하는 방법을 모른다 8 장 이상의 사진? max_filesmax_files_countmax_file_count을 추가하려고 시도했지만 아무 것도 작동하지 않았습니다. 플러그인 자체의 소스 코드를 수정하고 js와 아무것도 작동하지 않았습니다. 사용자가 8 개 이상의 이미지를 업로드 할 수 없도록하고 싶습니다. 내가 plupload 포기 후

, 나는 다시

pluploadjs here 편집

/* prevent form submission if user selects more than 8 pics */ 
jQuery('#app-attachment-upload-pickfiles').change(function() { 
    if (this.files.length > 8) { 
     alert('Uploading more than 8 images is not allowed'); 
     this.value = ''; 
    } 
}); 
// Prevent submission if limit is exceeded. 
jQuery('#mainform').submit(function() { 
    if (this.files.length > 8) { 
     jQuery('#app-attachment-upload-pickfiles').hide(); 
     jQuery('#step1').hide(); 
     return false; 
    } else { 
     jQuery('#app-attachment-upload-pickfiles').show(); 
     jQuery('#step1').show(); 
    } 
}); 

를 작동하지 않았다, jQuery를 사용하여 그 일을 시도했다.

attachUploader.bind('FilesAdded', function(up, files) { 
     jQuery.each(files, function(i, file) { 
      jQuery('#app-attachment-upload-filelist').append(
       '<div id="' + file.id + '" class="app-attachment-upload-progress">' + 
       file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' + 
       '</div>'); 

      window.appFileCount += 1; 
      APP_Attachment.hideUploadBtn(); 
     }); 

     up.refresh(); 
     attachUploader.start(); 
    }); 

FilesAdded 나는 모든 것을가 너무

attachUploader.bind('FilesAdded', function(up, files) { 
     var maxfiles = 8; 
      if(up.files.length > maxfiles) 
      { 
       up.splice(maxfiles); 
       alert('no more than '+maxfiles + ' file(s)'); 
      } 
      if (up.files.length === maxfiles) { 
       $('#app-attachment-upload-filelist').hide("slow"); // provided there is only one #uploader_browse on page 
      } 
     jQuery.each(files, function(i, file) { 
      jQuery('#app-attachment-upload-filelist').append(
       '<div id="' + file.id + '" class="app-attachment-upload-progress">' + 
       file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' + 
       '</div>'); 

      window.appFileCount += 1; 
      APP_Attachment.hideUploadBtn(); 
     }); 

     up.refresh(); 

     attachUploader.start(); 
    }); 

처럼 보이도록 수정? 이제 작동할까요? 오류가 발생하기 때문에 테스트하지 않았습니다.

+0

:

은 어쩌면이 코드를 사용해보십시오. 대신 StackOverflow에 질문을 올리십시오 ("plupload"태그 사용). 나는 github에 대해서도 물어 보았습니다. – Lynob

+0

이 도움이 될 것입니다. https://stackoverflow.com/a/15520225/1236044 – jbl

+0

@jbl 제 편집문을 읽고 제게 지금은 효과가 있는지 알려주십시오. – Lynob

답변

1

잘 모르겠지만 코드가 거의 작동해야합니다. 난 removeFile 메서드를 호출하여 대기열에서 파일을 수동으로 제거해야한다고 생각합니다. 나는`이 포럼은 새로운 등록을 수락하지 않는 plupload 포럼 http://www.plupload.com/punbb/register.php는 말한다에 요구 시도

attachUploader.bind('FilesAdded', function(up, files) { 
     var maxfiles = 8; 

     // remove all new files after the max of files 
     jQuery.each(up.files, function(i, file) { 
      if(i > maxfiles){ 
       up.removeFile(file); 
      } 
     });  
}); 
+0

에서 작동했기 때문에 추측합니다. 그러나 한 번만 작동했습니다. https://pastebin.com/04UDCBxY – Lynob

+0

stacktrace를 사용하면이 문제가 발생한 정확한 코드 행으로 다시 추적 할 수 있어야합니다. 아마도 당신이 정의되지 않은 객체의 'id'를 사용하는 곳일 것입니다. 이미 제거 된 파일 오브젝트를 사용하지 않도록하십시오. –

+0

나중에 시도해 보겠습니다. 만료되기 때문에 현상금을 드리며 테스트 할 시간이 없습니다. – Lynob