첨부파일 제한

개요



ServiceNow 전체에서 이용할 수 있는 첨부 파일의 확장자는 시스템 프로퍼티 「glide.attachment.extensions」로 제한할 수 있다. 또한 파일 크기 제한도 가능합니다.
htps : // / cs. 세레 ゔ 세세의 w. 코 m / 브 d ぇ / 파리 s p t t ぉ rm-d dmi에 st 라치 온 / 펑 / 아 d mi에 s r / 후 rm-d d에 st 라치 온 / sk / t_ぢさ bぃg gぇD 등 암 d로 p ふぇあつれ. HTML

인시던트 양식에 제한을 곱



그러나 인시던트 양식에만 제한을 걸거나 파일 수를 제한하는 경우는 다음과 같이 한다. (서비스 카탈로그에서는 제대로 작동하지 않습니다)

속성 만들기



첨부 파일 수를 제한하는 속성(ozawa.file.attachments.max)과 허용할 확장성(ozawa.file.attachments.ext)을 만듭니다.


양식의 클라이언트 스크립트



양식에 onSubmit() 스크립트 작성
function onSubmit() {
    var ajax = new GlideAjax('CheckFileAttachments');
    ajax.addParam('sysparm_name', 'validateAttachments');
    ajax.addParam('sysparm_sys_id', g_form.getUniqueValue());
    ajax.getXMLAnswer(function(answer) {
        if (answer != "true") {
            g_form.addErrorMessage('File attachments are illegal');
            return false;
        }
    });
}

스크립트 포함


var CheckFileAttachments = Class.create();
CheckFileAttachments.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    validateAttachments: function() {
        var extMax = gs.getProperty('ozawa.file.attachments.max');
        var extList = gs.getProperty('ozawa.file.attachments.ext').split(',');
        var incSysid = this.getParameter('sysparm_sys_id');

        var gr = new GlideRecord('sys_attachment');
        gr.addQuery('table_sys_id', incSysid);
        gr.query();
        if (gr.getRowCount() > extMax) {
            return false;
        }

        while (gr.next()) {
            var filename = gr.file_name;
            var found = false;
            for (var i = 0; i < extList.length; i++) {
                if (filename.endsWith('.' + extList[i])) {
                    found = true;
                    break;
                }
            }
            if (!found) {
                return false;
            }
        }
        return true;
    },

    type: 'CheckFileAttachments'
});

서비스 카탈로그에 제한을 걸기



서비스 카탈로그의 경우 포털에서 오류가 발생하지만 UI에서 다음 스크립트를 제한 할 수 있습니다.
서비스 카탈로그의 경우 속성과 스크립트 포함은 위와 동일하지만 클라이언트 스크립트가 다릅니다.

클라이언트 스크립트


function onSubmit() {
    var ajax = new GlideAjax('CheckFileAttachments');
    ajax.addParam('sysparm_name', 'validateAttachments');
    ajax.addParam('sysparm_sys_id', g_form.getParameter("sysparm_item_guid"));
    ajax.getXMLAnswer(function(answer) {
        if (answer != "true") {
            g_form.addErrorMessage('File attachments are illegal');
            return false;
        }
    });
}

좋은 웹페이지 즐겨찾기