2015-06-22 73 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