首页 > 解决方案 > 如何通过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()">

标签: javascripthtmlfile-uploaduploadimage-uploading

解决方案


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()">


推荐阅读