javascript - 如何通过javascript验证输入(type =“file”)仅用于上传图像?
问题描述
我只需要输入上传图像,我尝试使用此代码,但如果我从上传窗口中选择所有文件,我仍然可以使用一些 .exe 文件,它只是发出警报,我可以按确定,然后文件仍然上传和我可以按提交。
怎么删除上传的文件??
function validateFileType(){
var fileName = document.getElementById("fileName").value,
idxDot = fileName.lastIndexOf(".") + 1,
extFile = fileName.substr(idxDot, fileName.length).toLowerCase();
if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){
//TO DO
}else{
alert("Only jpg/jpeg and png files are allowed!");
}
}
<input name="image" type="file" id="fileName" accept=".jpg,.jpeg,.png" onchange="validateFileType()">
解决方案
input
除了提醒用户之外,您还需要重置:
let file = document.getElementById("fileName");
function validateFileType(){
var fileName = file.value,
idxDot = fileName.lastIndexOf(".") + 1,
extFile = fileName.substr(idxDot, fileName.length).toLowerCase();
if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){
//TO DO
}else{
alert("Only jpg/jpeg and png files are allowed!");
file.value = ""; // Reset the input so no files are uploaded
}
}
<input name="image" type="file" id="fileName" accept=".jpg,.jpeg,.png" onchange="validateFileType()">
推荐阅读
- c++ - 理解递归背包
- matlab - 我的 for 循环的 Matlab 代码中有一些错误。我想问是否有人知道错误在哪里
- excel - 跨多个工作表删除表中的空行
- java - 在Java中将日期格式“EEE MMM dd HH:mm:ss zzzz yyyy”转换为“yyyy-MM-dd'T'HH:mm:ss”
- powershell - `foreach` 集合表达式中的`Write-Output`
- python - 如何读取这个输入?尝试使用 sys.stdin.readline()
- python - Django没有向html模板返回成功
- javascript - Boobtbox 对话框在单击时关闭并且页面刷新
- java - 为多个过滤器设计端点
- reactjs - 获取 Electron 生产窗口以使用 loadURL 加载路由?