【问题标题】:javascript accept only image not workingjavascript只接受图像不起作用
【发布时间】:2015-12-31 08:58:27
【问题描述】:

在我的代码中,我只想接受 image file。否则它不会接受,并会提醒它不是 image file

我在 jsfiddle 中完成了以下代码:--

jsfiddle link

但问题是它..它没有给出任何信息。我​​做错了什么?

【问题讨论】:

  • 如果我将 exe 文件重命名为 .jpg 会怎样?
  • 我如何检查它?它取决于大小。扩展名将转换文件
  • 通过检测mime类型,方法如下-> stackoverflow.com/questions/4264289/…
  • 这是文本文件的示例。图像文件将是什么?这家伙没有接受任何答案。
  • 然后你当然要查找图像文件的 mime 类型 :) 请参阅我的链接中关于他们如何检查 mime 类型的第二个答案,这似乎是一个很大的 mime 类型列表-> sitepoint.com/web-foundations/mime-types-complete-list

标签: javascript html


【解决方案1】:

你用过

 var image =document.getElementById("file").value;

但忘了给文件控制ID,所以给它

<input type="file" name="fileUpload" id="file" size="50" />

并在 w3schools tryit 浏览器中尝试以下代码,并在提交按钮上使用 onClick 事件而不是 onSubmit

<!DOCTYPE html>
<html>
<body>

<div align="center">

    <form:form modelAttribute="profilePic" method="POST"enctype="multipart/form-data" action="/SpringMvc/addImage">

                <input type="file" name="fileUpload" id="file" size="50" />


                <input type="submit" value="Add Picture" onClick="Validate();"/>

    </form:form>
</div>

<script>
  function Validate(){
  var image =document.getElementById("file").value;

 if(image!=''){
    var checkimg = image.toLowerCase();
    if (!checkimg.match(/(\.jpg|\.png|\.JPG|\.PNG|\.gif|\.GIF|\.jpeg|\.JPEG)$/)){
      alert("Please enter Image File Extensions .jpg,.png,.jpeg,.gif");
      document.getElementById("file").focus();
      return false;
   }
 }
 return true;
}
</script>

</body>
</html>

【讨论】:

    【解决方案2】:

    https://jsfiddle.net/weufx7dy/2/

    您忘记在文件元素上添加 id

    <input type="file" id="file" name="fileUpload" size="50" />
    

    【讨论】:

      【解决方案3】:

      使用这个:

      userfile.addEventListener('change', checkFileimg, false);
      
          function checkFileimg(e) {
      
          var file_list = e.target.files;
      
          for (var i = 0, file; file = file_list[i]; i++) {
          var sFileName = file.name;
          var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1].toLowerCase();
          var iFileSize = file.size;
          var iConvert = (file.size / 10485760).toFixed(2);
      
          if (!(sFileExtension === "jpg")) {
          txt = "File type : " + sFileExtension + "\n\n"; 
          txt += "Please make sure your file is in jpg format.\n\n";
          alert(txt);
          document.getElementById('userfile').value='';
          }
          }
          }
      

      【讨论】:

      • 在重命名为您自己的名称之前,请务必注明您从哪里获取这些功能 -> stackoverflow.com/questions/22364527/…
      • 我已经用了一年了。使用stackoverflow上给出的代码没有害处。我现在从我的源文件而不是从 stackoverflow 复制了相同的内容。
      • 我没有贬低你,但请看你上面的答案
      猜你喜欢
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多