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

how to check if certain image format is uploaded

我有一些代码可以检查正在上传的文件格式类型。我只想允许 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,我只希望显示警报。

将您的 if 条件更改为:

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

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

Demo One

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>

Demo Two

var fileExtension = ['jpeg', 'tiff'];
function MyFunc(e){
if(!($.inArray(e.split('.').pop().toLowerCase(),fileExtension) >-1)){
alert("Only formats allowed are: " + fileExtension.join(', '));
}
}
<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>

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

希望对您有所帮助。编码愉快!