如何将过滤器添加到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