使用文件上载控件过滤文件类型

如何使用asp.net&c#.net中的文件上传控件过滤文件类型

例如,单击文件上传控件的浏览按钮时,应该只打开excel文件类型的浏览文件对话框。

这怎么可能

这是其他论坛的答案

我认为如果你使用C#(或VB,net)和.net fileupload控件很容易实现它。 您可以在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; } 

它完美地运作!

  

我指的是post# ASP.NET – 限制文件上传可用的文件类型

使用RegularExpressionValidator可以轻松解决问题。 不再需要服务器端代码来检查扩展。 复制并粘贴此代码

   

我认为用控件是不可能的。

我听说过SWFUploader允许定义要上传的文件的扩展名,但这是一个基于闪存的组件。

即使您使用SWFUploader ,也不会阻止您输入*.* ,并选择要上传的任何文件。

您可以使用ComponentOne中的C1Upload来执行此操作。 它支持文件类型和大小validation。 请记住,您还需要在服务器上进行validation,因为文件扩展名很容易更改为与实际类型不匹配。 这是任何validation实践中的标准:在UI层validation然后在BL层validation,并且最好在DLvalidation。 这是一个带有内置validation的ASP.NET AJAX上传控件的演示。

关于此控件的另一个很酷的事情是支持多个上传文件显示上传进度

使用Angular File Upload时,这种方式可以将filter传递给uploder

.html文件

  

.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; } });