2015-06-22 71 views
0

我想检查文件是否为图像。然后你会看到一个链接,你可以看到图像。但链接只有在文件链接时才会出现。我尝试这样的:检查文件是否为图像

if (!String.IsNullOrEmpty(item.FileName)) { 
    var file = item.FileName; 
    string[] formats = new string[] { ".jpg", ".png", ".gif", ".jpeg" }; 
    if (file == null || file.Contains(formats)) { 
     viewLink = false; 
     @Html.DisplayFor(modelItem => item.FileName) 
     <em>(@Resources.Entity.Environment.Removed)</em> 
    } 
    else { 
     @*@Html.DisplayFor(modelItem => modelItem.Id)*@ 
     <a href="@Url.Action("Details", "FormLibrary", new { id = item.FileName})"><i class="fa fa-fw fa-external-link-square text-info"></i></a> 
    } 
} 

但我得到这个错误:

if (file == null || file.Contains(formats)) { 
+0

你会得到什么错误/异常信息? –

+4

这不是一个错误,它是可能产生错误的一行代码。你能发布错误吗? –

回答

2

你不能做到这一点:

string.Contains(string array) 

相反,你必须到该行的代码重写这个:

if (file == null || formats.Any(f => file.Contains(f))) 

这可以缩短到:

if (file == null || formats.Any(file.Contains)) 
+0

谢谢! Lasse – InfinityGoesAround

+0

请注意名为“test.gif.exe”的文件将被识别为图像。此外,应该比较文件名,忽略Windows机器上的情况。 – Andrew