파일을 배열로 액세스 한 다음 필요에 따라 배열을 조작하여 허용되지 않는 파일을 제거 할 수 있습니다.
<script type="text/javascript">
function dostuff(input) {
var output = 'All Files:<br />';
var validOutput = '<br />Valid Files:<br />';
var validFiles = [];
for(var i = 0; i < input.files.length; i++) {
if(input.files[i].name.substr(-3, 3) != 'jpg') {
alert(input.files[i].name + ' is invalid');
}
else {
validFiles.push(input.files[i]);
validOutput += input.files[i].name;
}
output += input.files[i].name + '<br />';
}
output += validOutput;
document.getElementById('output').innerHTML = output;
}
</script>
<input type='file' name='uploads[]' multiple="" onchange="dostuff(this);" accept="image/*" />
<div id="output"></div>
Fiddle here.
이 코드에서 파일을 삭제하지 않으셔도됩니다. 난 그냥 input.files 수정 시도하고 아무것도 보이지 않습니다. 서버는 여전히 내 코드가 오류없이 실행되는 무효 파일을 가져옵니다. –
예, 저는 input.files를 수정하려고 애썼지 만 연관 배열이고 값을 덮어 쓸 수 없습니다. AJAX 메서드를 사용하고 컨트롤에 의해 생성 된 기본 파일 배열 대신 만든 유효한 파일 배열을 보내야 할 수도 있습니다. – ggutenberg
정확히 그럴 수 없습니다. 나는 자동적으로 그렇게하지 않을 것이고 제출을 거절 할 것이다. 그것은 아마도 혼란을 덜 일으킬 것입니다. –