如何將過濾器添加到asp.net中的文件上傳控件?我想要一個用於Word模板文件(.dot)的過濾器。添加過濾器到FileUpload控件
1
A
回答
4
你也可以做一個JavaScript替代過濾它是服務器端(你可能也想這樣做),但是這樣可以節省客戶端花費等待上傳完成的時間,以便發現它是錯誤的類型。
http://javascript.internet.com/forms/upload-filter.html
所以基本上你只要運行一個JavaScript函數上提交解析關閉上傳文件的擴展名,如果它不正確類型的給他們一個警告。你也可以使用document.forms [0] .submit();}。而不是通過形式參考(因爲ASP.NET真的只使用一種形式(除非你做一些時髦))
1
檢查上傳的文件服務器端的文件名:
FileUpload1.PostedFile.FileName
除非你想使用Java或在客戶端上類似的東西,有真的沒有什麼可以做的過濾上傳的文件之前,他們會發送到服務器。
2
string fileName = fuFiles.FileName;
if(fileName.Contains(".dot"))
{
fuFiles.SaveAs(Server.MapPath("~/Files/" + fileName));
}
2
如果您的意思是使用標準瀏覽器的文件選擇器過濾文件擴展名客戶端/端,是不可能的。 要做到這一點,你必須使用混合類型的上傳,如SWFUpload,基於Flash上傳系統(這是一個非常好的技術:它允許你發佈超過一個文件)。
你可以在標準模式下唯一要做的是過濾已經發布文件,我建議使用System.IO.Path命名空間實用程序:
if (Path.GetExtension(upFile.FileName).ToUpper().CompareTo(".DOT") == 0)
{
/* do what you want with file here */
}
1
在這裏我有一個小的方法,我用來過濾哪些類型的文件可以上傳名爲fuLogo的文件上傳控件。
if (fuLogo.HasFile)
{
int counter = 0;
string[] fileBreak = fuLogo.FileName.Split(new char[] { '.' });
logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString()+ "." + fileBreak[1]);
if (fileBreak[1].ToUpper() == "GIF" || fileBreak[1].ToUpper() == "PNG")
{
while (System.IO.File.Exists(logo))
{
counter++;
logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString() + "." + fileBreak[1]);
}
}
else
{
cvValidation.ErrorMessage = "This site does not support any other image format than .Png or .Gif . Please save your image in one of these file formats then try again.";
cvValidation.IsValid = false;
}
fuLogo.SaveAs(logo);
}
基本上,我首先遍歷目錄來查看文件是否已經存在。如果文件存在,(例如picture0.gif),它會增加計數器(至picture1.gif)。它可以防止不同的用戶在他們的圖片具有相同的名字時會覆蓋彼此的圖片。
相關問題
- 1. 如何過濾FileUpload控件?
- 2. 添加過濾器到LiveGrid?
- 3. 添加條件過濾器
- 4. 添加過濾器到自定義控制器Dunglas API
- 5. 通過代碼隱藏添加FileUpload控件
- 6. 在使用php時添加過濾器參數到流過濾器://過濾器
- 7. 將過濾器從過濾器對話框添加到視圖
- 8. WordPress添加過濾器到wp_get_attachment_link
- 9. 將過濾器添加到Django REST API
- 10. Primefaces - 將過濾器添加到SelectOneListBox
- 11. 添加過濾器到路線?
- 12. 添加elision過濾器到雪球
- 13. 過濾器和處理程序的FileUpload
- 14. 添加過濾器添加類在WordPress
- 15. 添加jquery添加MS過濾器
- 16. SAS添加過濾器
- 17. 添加類別過濾器
- 18. Wordpress過濾器添加meta?
- 19. 添加過濾器的jqGrid
- 20. 添加過濾器列出
- 21. 枝條添加過濾器
- 22. 添加表單過濾器
- 23. 添加一個過濾器
- 24. 添加多個過濾器
- 25. 禁止彈簧啓動添加@Bean過濾器到過濾鏈
- 26. 添加控件到ng-repeat來過濾數據
- 27. sql過濾條件,添加日期過濾器
- 28. Woocommerce添加過濾條件
- 29. 添加類過濾元件
- 30. FileUpload控件(UploadButton.PostedFile.FileName)
如果您的文件名是myFile.1.png,則會失敗,請改用Path.GetExtension(theFileName) – 2012-03-16 15:13:48