UEditor 사용자 정의 이미지 영상 사이즈 검사 기능 구현 코드
UEditor 는 단일 그림,다 중 그림 및 비디오 업 로드 를 지원 합 니 다.편집기 설정 항목 은 파일 형식,파일 크기 검 사 를 지원 합 니 다.파일 너비 와 높 은 크기 검 사 는 지원 되 지 않 습 니 다.사용자 정의 그림,비디오 사이즈 검사 과정 을 기록 합 니 다.내용 의 핵심 은 검사 논 리 를 확장 하고 사용자 정의 알림 텍스트 를 추가 하 는 것 입 니 다.
단일 이미지 업로드
단일 그림 업로드 의 논 리 는
ueditor.all.js에서simpleUpload구성 요소 로 이 루어 지고 그 내 부 는 감청file입력 상자 의 변 화 를 통 해 파일 검사 와 업 로드 를 한다.아래 그림
initUploadBtn은 간단 한 업로드 단 추 를 초기 화 하 는 방법 이자 관련 검 사 를 하 는 곳 입 니 다. 
 initUploadBtn기본 검사 코드 는 다음 과 같 습 니 다.
var form = btnIframeDoc.getElementById('edui_form_' + timestrap);
var input = btnIframeDoc.getElementById('edui_input_' + timestrap);
var iframe = btnIframeDoc.getElementById('edui_iframe_' + timestrap);
domUtils.on(input, 'change', function(){
 if(!input.value) return;
 //       
 /*                */
 if (!me.getOpt('imageActionName')) {
  errorHandler(me.getLang('autoupload.errorLoadConfig'));
  return;
 }
 //           
 var filename = input.value,
  fileext = filename ? filename.substr(filename.lastIndexOf('.')):'';
 if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) {
  showErrorLoader(me.getLang('simpleupload.exceedTypeError'));
  return;
 }  
 
 //     ,    
 domUtils.on(iframe, 'load', callback);
 form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params);
 form.submit();
});
var form = btnIframeDoc.getElementById('edui_form_' + timestrap);
var input = btnIframeDoc.getElementById('edui_input_' + timestrap);
var iframe = btnIframeDoc.getElementById('edui_iframe_' + timestrap);
domUtils.on(input, 'change', function(){
 if(!input.value) return;
 //       
 /*                */
 if (!me.getOpt('imageActionName')) {
  errorHandler(me.getLang('autoupload.errorLoadConfig'));
  return;
 }
 //           
 var filename = input.value,
  fileext = filename ? filename.substr(filename.lastIndexOf('.')):'';
 if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) {
  showErrorLoader(me.getLang('simpleupload.exceedTypeError'));
  return;
 }  
 //        
 var files = this.files;
 var reader = new FileReader();
 reader.readAsDataURL(input.files[0]);
 reader.onload = function (theFile) {
  var image = new Image();
  image.src = theFile.target.result;
  image.onload = function () {
   if (this.width < 1080) {
    showErrorLoader('    1080');
    return;
   }   
   //     ,    
   domUtils.on(iframe, 'load', callback);
   form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params);
   form.submit();
   };
  };
});새로 추 가 된 사이즈 검 사 는
FileReader로 업 로드 된 파일 을 읽 고 너비 가 높 아 관련 사이즈 나 비례 판단 을 실현 할 수 있 습 니 다.검사 효 과 는 다음 과 같 습 니 다. 
 다 중 업로드
다 중 사진 업 로드 는 주로 세 개의 파일
image.html,webupload.js과image.js과 관련된다.webupload.js파일 의 전체 크기 가 초과 되 었 는 지,단일 파일 이 초과 되 었 는 지,파일 이 중복 되 었 는 지 등 여러 가지 검증 을 포함 합 니 다.여기 서도 사용자 정의 검증 을 추가 할 수 있 습 니 다.Uploader초기 화 할 때 함께 불 러 옵 니 다. 
 사용자 정의 그림 크기 검사 방법 은 다음 과 같 습 니 다.
 /**
   * @property {int} [fileSingleWidth=undefined]
   * @namespace options
   * @for Uploader
   * @description             ,            。
   */
  //======================
  api.addValidator('fileSingleWidth', function () {
   var uploader = this,
    opts = uploader.options,
    minWidth = 1080;
   uploader.on('beforeFileQueued', function (file) {
    let that = this;
    let type = file.type;
    window.URL = window.URL || window.webkitURL;
    var reader = new FileReader();
    reader.readAsDataURL(file.source.source);
    reader.onload = function (theFile) {
     var image = new Image();
     image.src = theFile.target.result;
     image.onload = function () {
      if (this.width < minWidth) {
       file.setStatus(WUFile.Status.INVALID, 'exceed_width');
       that.trigger('error', 'F_EXCEED_SIZE', file);
       that.removeFile(file);
       return false;
      }
     };
    }
   });
  });image.js의addFile방법 에 제시 텍스트 를 추가 해 야 합 니 다. 
 검사 효과:
 
 비디오 업로드
동 영상 업로드 역시 세 개의 파일
video.html,webupload.js과video.js을 포함 하고 처리 논 리 는 다 중 그림 업로드 와 같다.우 리 는 위 에서 그림 의 폭 을 검사 하 는 토대 에서 영상 해상도 가 720 보다 작 는 지 확인 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
 /**
   * @property {int} [fileSingleWidth=undefined]
   * @namespace options
   * @for Uploader
   * @description             ,            。
   */
  //======================
  api.addValidator('fileSingleWidth', function () {
   var uploader = this,
    opts = uploader.options,
    minWidth = 1080;
   
   uploader.on('beforeFileQueued', function (file) {
    let that = this;
    let type = file.type;
    window.URL = window.URL || window.webkitURL;
    //        
    if (type.indexOf('video') > -1) {
     var video = document.createElement('video');
     video.preload = 'metadata';
     video.src = URL.createObjectURL(file.source.source);
     video.onloadedmetadata = () => {
      URL.revokeObjectURL(video.src);            
      if (video.videoHeight < 720) {
       file.setStatus(WUFile.Status.INVALID, 'exceed_height');
       that.trigger('error', 'F_EXCEED_SIZE', file);
       that.removeFile(file);
       return false;
      }
     }
    }else{
     //      
     var reader = new FileReader();
     reader.readAsDataURL(file.source.source);
     reader.onload = function (theFile) {
      var image = new Image();
      image.src = theFile.target.result;
      image.onload = function () {
       if (this.width < minWidth) {
        file.setStatus(WUFile.Status.INVALID, 'exceed_width');
        that.trigger('error', 'F_EXCEED_SIZE', file);
        that.removeFile(file);
        return false;
       }
      };
     }
    }
   });
  });vedio.js의addFile방법 에 검사 텍스트 추가 
 검사 효과:
 
 UEditor 사용자 정의 이미지 동 영상 사이즈 검사 기능 의 구현 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 UEditor 사용자 정의 이미지 동 영상 콘 텐 츠 는 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
UEditor 기본 글꼴 및 글꼴 수정 방법UEditor 루트 디렉토리의 ueditor를 직접 엽니다.all.js 파일, "기본 글꼴과 글꼴 설정"을 찾고 기본 글꼴과 글꼴을 수정합니다. 옵션 안의 글꼴이 당신이 원하는 것이 없으면 루트 디렉터리 uedito...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.