「ファイルが見つかりませんでした」というエラー メッセージを見て、私が抱えていた問題がバリデーター/フィルターの設定よりも深刻であることに気付きました。
フォームは、FormData オブジェクトを使用して AJAX スクリプトによって処理されます。以下を使用してファイルをオブジェクトに追加しました。
oAgencyFormData.append("cssFilename", document.getElementById('logoName').files[0]);
オブジェクトは AJAX 呼び出しに渡されます。ファイルがアップロードされていない場合、「未定義」がスクリプトに渡されていることに気付きました。したがって、ファイルが指定されていない場合は、「」が割り当てられる変数に分割しました。
var oLogoFile = document.getElementById('logoName').files[0];
var oCssFile = document.getElementById('cssFilename').files[0];
// define defaults for file upload fields (used if nothing is uploaded)
if(typeof oLogoFile === 'undefined'){
oLogoFile = '';
};
if(typeof oCssFile === 'undefined'){
oCssFile = '';
};
これを行うと、ファイルバリデーターは期待どおりに機能しました。