如何使用asp.net&中的文件上传控件过滤文件类型C#.NET
例如,单击文件上传控件的浏览按钮,它应该只打开excel文件类型的浏览文件对话框。怎么可能
答案 0 :(得分:9)
这是其他论坛的答案
如果您使用C#(或VB,net)和.net文件上载控件,我认为很容易实现它。您可以在arraylist“allowedExtensions”中定义文件类型。
string upload_Image(FileUpload fileupload, string ImageSavedPath)
{
FileUpload fu = fileupload;
string imagepath = "";
if (fileupload.HasFile)
{
string filepath = Server.MapPath(ImageSavedPath);
String fileExtension = System.IO.Path.GetExtension(fu.FileName).ToLower();
String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
try
{
string s_newfilename = DateTime.Now.Year.ToString() +
DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + fileExtension;
fu.PostedFile.SaveAs(filepath + s_newfilename);
imagepath = ImageSavedPath + s_newfilename;
}
catch (Exception ex)
{
Response.Write("File could not be uploaded.");
}
}
}
}
return imagepath;
}
答案 1 :(得分:8)
完美无缺!
<asp:FileUpload ID="FileUpload1" runat="server" accept=".xls, .xlsx"/>
答案 2 :(得分:2)
我指的是帖子#ASP.NET - Limit file upload available file types
使用RegularExpressionValidator可以轻松解决问题。不再需要服务器端代码来检查扩展。复制&amp;粘贴此代码
<asp:RegularExpressionValidator ID="uplValidator" runat="server"
ControlToValidate="FileUpload1" ErrorMessage=".mp3, .mp4 & wma formats are allowed"
ValidationExpression="(.+\.([Mm][Pp][3])|.+\.([Mm][Pp][4])|.+\.([Ww][Mm][Aa]))">
</asp:RegularExpressionValidator>
答案 3 :(得分:1)
我认为<input type="file"
无法控制。
我听说SWFUploader
允许定义要上传的文件的扩展名,但这是一个基于闪存的组件。
即使您使用SWFUploader
,也不会阻止您输入*.*
,并选择要上传的任何文件。
答案 4 :(得分:0)
您可以使用ComponentOne中的 C1Upload 来执行此操作。它支持文件类型和大小验证。请记住,您还需要在服务器上进行验证,因为文件扩展名很容易更改为与实际类型不匹配。这是任何验证实践中的标准:在UI层验证然后在BL层验证,并且最好在DL验证。以下是内置验证ASP.NET AJAX upload control的演示。
此控件的另一个很酷的功能是支持多个上传文件,显示上传进度!
答案 5 :(得分:0)
使用Angular File Upload时,这种方式可以将过滤器传递给uploder
.html文件
<input type="file" nv-file-select uploader="uploaderImages" />
.js文件:
$scope.uploaderImages.filters.push({
name: 'imageFilter',
fn: function (item/*{File|FileLikeObject}*/, options) {
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;
}
});