当我上传文件超过5mb或文件扩展名不是.jpg
或.png
时,我想停止文件上传事件。我找到了一个代码,但当我尝试上传无效的文件类型时,它只给我提醒我已经上传了错误的文件,但它没有取消该事件。
这是代码
<script>
function checkFile(fieldObj)
{
var FileName = fieldObj.value;
var FileExt = FileName.substr(FileName.lastIndexOf('.')+1);
var FileSize = fieldObj.files[0].size;
var FileSizeMB = (FileSize/5485760).toFixed(2);
if ( (FileExt != "png" && FileExt != "jpg") || FileSize>5485760)
{
var error = "File type : "+ FileExt+"\n\n";
error += "Size: " + FileSizeMB + " MB \n\n";
error += "Please make sure your file is in png or jpg format and less than 5 MB.\n\n";
alert(error);
return false;
}
return true;
}
</script>
这里是html代码
<input type="file"onchange="checkFile(this)"name='sec_2_img'>
答案 0 :(得分:2)
您需要清除'sec_2_img'的值。您可以在fieldObj.value = "";
之后和alert(error)
之前添加return false;
来执行此操作。这将从sec_2_img
中删除文件名,并强制用户选择一个新文件名,同时仍显示该消息,以便用户知道该怎么做。
答案 1 :(得分:1)
1。)不要使用警报,它们很烦人,浏览器会很快阻止它们,因此您的用户将不再收到任何消息。 使用模态窗口或在表单中的某处添加带有错误消息的样式元素。
2。)如果您需要有一个有效的文件来提交此表单,您必须在表单的submit-event中添加一个事件处理程序并停止传输。
3.。)您对文件扩展名的检查区分大小写,这可能会给您带来窗口问题,并且您对fileSize的计算错误。