如何检查是否上传了某种图像格式

时间:2015-09-03 10:41:31

标签: javascript jquery file-extension

我有一些代码可以检查上传的文件格式类型。我只想允许tiff或jpeg文件,所以如果试图上传任何其他文件,则显示警告信息

 $(document).ready(function () {
      $("#fuUpload").change(function () {
           var fileExtension = ['jpeg', 'tiff'];
           if ($.inArray($(this).val().split('.').pop().toLowerCase(), fileExtension) == -1) {
                alert("Only formats allowed are: " + fileExtension.join(', '));
           }
      });
 });

问题在于此代码即使正在上传正确的文件,它也会显示警报。如果文件不是tiff或jpeg,我只希望显示警报。

1 个答案:

答案 0 :(得分:1)

将您的if条件更改为:

if(!(fileExtension.indexOf($(this).val().split('.').pop().toLowerCase()) > -1))

if(!($.inArray($(this).val().split('.').pop().toLowerCase(),fileExtension) >-1))
  

演示一



var fileExtension = ['jpeg', 'tiff'];
function MyFunc(e){
if(!(fileExtension.indexOf(e.split('.').pop().toLowerCase()) > -1)){
  alert('Format Not Accepted');
}else{
 alert("This Format Is Okay!");
}
}

<button value="image.tiff" onclick="MyFunc(this.value);">Image.tiff</button>
<button value="image.gif" onclick="MyFunc(this.value);">Image.<b>gif</b></button>
<button value="image.jpeg" onclick="MyFunc(this.value);">Image.jpeg</button>
&#13;
&#13;
&#13;

  

演示二

&#13;
&#13;
var fileExtension = ['jpeg', 'tiff'];
function MyFunc(e){
if(!($.inArray(e.split('.').pop().toLowerCase(),fileExtension) >-1)){
alert("Only formats allowed are: " + fileExtension.join(', '));
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<button value="image.tiff" onclick="MyFunc(this.value);">Image.tiff</button>
<button value="image.gif" onclick="MyFunc(this.value);">Image.<b>gif</b></button>
<button value="image.jpeg" onclick="MyFunc(this.value);">Image.jpeg</button>
&#13;
&#13;
&#13;

如果您对上述源代码有任何疑问,请在下面留言。

我希望这会有所帮助。快乐的编码!