我的情況是:我有兩個IIS站點:A(文件上傳,使用ASP.NET MVC),B(普通網站,使用ASP.NET)。 B調用A(在iframe中,傳遞一些參數到URL中,包括acceptFileType到A)來過濾文件上傳。我可以將正則表達式模式傳遞給url以發送給服務器進行處理嗎?
在B:我通過http://www.urlofA.com/Home/Upload?acceptFileTypes= 「圖像/ *,應用/ PDF」
上的: 在控制器:
public ActionResult Upload(string path, string acceptFileTypes = "*/*", bool dialog = true)
{
ViewBag.AcceptFileTypes = acceptFileTypes;
return View();
}
在Upload.chtml:
<input type="file" [email protected]"/>
當我點擊「確定」按鈕,我驗證文件是有效的,以確保只有接受的類型必須上傳,因爲用戶可以在對話框選擇文件中更改視圖文件並獲取其他文件。我通過正則表達式來檢查它。
this.acceptType.test(file.type) && this.acceptType.test(file.name)
這個正則表達式我上的一個定義:
$('#file').fileUpload{
acceptType: /(\.|\/)(pdf|gif|jpe?g|png|bmp)$/i
}
目前,我只是通過acceptFileType在UI來處理,我能不能通過acceptType在JS驗證。
我嘗試acceptType傳遞到URL,我得到了 「遺漏的類型錯誤:未定義是不是一個函數」
@Hatsjoem:A站點是虛擬的,它只是處理上傳文件。 B必須是傳遞文件類型才能進行過濾。我的企業需要它。 – TPL
不要這樣做。由於它是從客戶端傳入的,因此用戶可以更改正則表達式。這種事情導致了安全漏洞。找到更好的解決方案。 –
@AntP正是我所想的 – Hatsjoem