如何使用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
中删除文件名,并强制用户选择一个新的文件名,同时仍然显示消息,以便用户知道该做什么
1.)不要使用警报,它们很烦人,浏览器会很快阻止它们,所以你的用户不会再收到任何消息。使用模式窗口或在表单的某个位置添加带有错误消息的样式元素。
2.)如果您需要有一个有效的文件来提交此表单,则必须在表单的提交事件中添加一个事件处理程序并停止传输。
3.)您对文件扩展名的检查是区分大小写的,这可能会在windows上给您带来问题,并且您对fileSize的计算是错误的。
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 通过将文件上载到ASHX处理程序来实现SSE(服务器发送的事件)
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- Dropzone最大文件大小超过事件
- 选择同一文件时未触发HTML输入文件选择事件
- 如何在 iPhone 上打开启用了 CSS 事件的 HTML 文件
- 如何在jQuery中处理输入类型=文件的onchange事件
- XHTML文件头部分中的事件驱动函数
- 触发AngularJS中的输入文件点击事件
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- 根据文件类型取消绑定和重新绑定click事件处理程序
- 如何从加载的JSON文件构建外部事件列表
- 如何在jquery/JavaScript中打开浏览文件对话框时执行取消事件
- 从驱动器打开文件时未调用Onfileloaded事件
- JQuery多文件事件未激发
- 如何查找jquery或javascript事件从哪个文件发生
- 如何在javascript中从ondrop事件中获取文件URL
- 如何在动态插入的html文件中使用onload事件
- 为什么在文件输入上触发点击事件也会在表单上触发提交事件