如何使用 JavaScript 停止文件上传事件
How stop file upload event using JavaScript
当我上传超过 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'>
您需要清除 'sec_2_img' 的值。为此,您可以在 alert(error)
之后和 return false;
之前添加 fieldObj.value = "";
。这将从 sec_2_img
中删除文件名并强制用户 select 一个新文件名,同时仍显示消息以便用户知道该怎么做。
1.) 不要使用提醒,它们很烦人,浏览器会很快阻止它们,因此您的用户将不会再收到任何消息。
使用模态 window 或在表单某处添加带有 error-message 的样式元素。
2.) 如果你需要一个有效的文件来提交这个表单,你必须在表单的submit-event中添加一个event-handler并停止传输。
3.) 您对 file-extension 的检查是 case-sensitive,这可能会给您在 windows 上带来问题,并且您对文件大小的计算是错误的。
当我上传超过 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'>
您需要清除 'sec_2_img' 的值。为此,您可以在 alert(error)
之后和 return false;
之前添加 fieldObj.value = "";
。这将从 sec_2_img
中删除文件名并强制用户 select 一个新文件名,同时仍显示消息以便用户知道该怎么做。
1.) 不要使用提醒,它们很烦人,浏览器会很快阻止它们,因此您的用户将不会再收到任何消息。 使用模态 window 或在表单某处添加带有 error-message 的样式元素。
2.) 如果你需要一个有效的文件来提交这个表单,你必须在表单的submit-event中添加一个event-handler并停止传输。
3.) 您对 file-extension 的检查是 case-sensitive,这可能会给您在 windows 上带来问题,并且您对文件大小的计算是错误的。