ファイルパスの検証なしでファイル名に無効な文字を含むファイル名を検証しようとしています。私はさまざまな組み合わせを試みたが、私のJavaScript関数のどれもそのトリックをやっていないようだ。無効な文字(特殊文字と国際文字)がファイルパスの検証なしでファイル名に含まれていないか確認してください。
@Html.TextBoxFor(model => model.Attachment, new { type = "file" , onchange = "ValidateFileName(this)" })
JS:
function ValidateFileName(name) {
if (name.value.match(/\.\.[a-z][a-z][a-z]$/) || name.value.match(/\.\.[a-z][a-z][a-z][a-z]$/) || name.value.match(/^(?!\.)(?!com[0-9]$)(?!con$)(?!lpt[0-9]$)(?!nul$)(?!prn$)[^\|\*\?\\:%<>/$"]*[^\.\|\*\?\\:%<>/$"]+$/)) {
alert('Invalid file extension.');
name.form.reset();
name.focus();
return false;
}
}
ファイル名からパスを分割することは、私が欠けていたものでした。ありがとうございました !それは今働く。私のJS関数が実際にparameter.valueでチェックするので、this.valueについてのあなたの質問にも答えています。私はthis.valueを渡していませんでした。 – user7221204