.net上传文件时获取文件的真实类型

  1. using System;     
    using System.Collections.Generic;     
    using System.Linq;     
    using System.Web;     
    using System.Web.UI;     
    using System.Web.UI.WebControls;     
    using System.IO;     
        
    public partial class niunantest : System.Web.UI.Page     
    {     
        protected void Page_Load(object sender, EventArgs e)     
        {     
        
        }     
        protected void Button1_Click(object sender, EventArgs e)     
        {     
            string str = FileUpload1.PostedFile.ContentType;     
            Response.Write("文件类型:"+str);     
        
            string filename = "";     
        
            FileExtension[] fe = { FileExtension.GIF, FileExtension.JPG, FileExtension.PNG };     
            if (FileValidation.IsAllowedExtension(FileUpload1, fe))     
            {     
                string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();     
                Response.Write("<br>验证通过!");     
                //filename = "/Images/" + DateTime.Now.ToString("yyyyMMddHHmmss") + fileExt;     
                //FileUpload1.PostedFile.SaveAs(Server.MapPath(filename));     
            }     
            else    
            {     
                Response.Write( "<br>验证不通过,只支持以下格式的图片:JPG,GIF,PNG");     
                return;     
            }     
        
        }     
        
        public enum FileExtension     
        {     
           
           JPG = 255216,
            GIF = 7173,
            BMP = 6677,
            PNG = 13780,
            RAR = 8297,
            jpg = 255216,
            exe = 7790,
            xml = 6063,
            html = 6033,
            aspx = 239187,
            cs = 117115,
            js = 119105,
            txt = 210187,
            sql = 255254
        
        }     
        
        public class FileValidation     
        {     
            public static bool IsAllowedExtension(FileUpload fu, FileExtension[] fileEx)     
            {     
                int fileLen = fu.PostedFile.ContentLength;     
                byte[] imgArray = new byte[fileLen];     
                fu.PostedFile.InputStream.Read(imgArray, 0, fileLen);     
                MemoryStream ms = new MemoryStream(imgArray);     
                System.IO.BinaryReader br = new System.IO.BinaryReader(ms);     
                string fileclass = "";     
                byte buffer;     
                try    
                {     
                    buffer = br.ReadByte();     
                    fileclass = buffer.ToString();     
                    buffer = br.ReadByte();     
                    fileclass += buffer.ToString();     
                }     
                catch    
                {     
                }     
                br.Close();     
                ms.Close();     
                foreach (FileExtension fe in fileEx)     
                {     
                    if (Int32.Parse(fileclass) == (int)fe)     
                        return true;     
                }     
                return false;     
            }     
        }     
    }    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于.NET平台,你可以使用ASP.NET Web API来实现文件上传的API。下面是一个简单的示例代码,演示了如何在ASP.NET Web API中处理文件上传请求: ```csharp public class FileController : ApiController { [HttpPost] public async Task<HttpResponseMessage> UploadFile() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new MultipartFormDataStreamProvider(Path.GetTempPath()); try { await Request.Content.ReadAsMultipartAsync(provider); // 获取上传的文件 var file = provider.FileData.FirstOrDefault(); if (file == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } // 处理上传的文件,例如保存到磁盘或者其他操作 return Request.CreateResponse(HttpStatusCode.OK, "File uploaded successfully"); } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex); } } } ``` 在上面的示例中,我们定义了一个名为FileController的API控制器,并添加了一个名为UploadFile的POST方法。该方法使用`MultipartFormDataStreamProvider`来处理多部分表单数据,并从请求中获取上传的文件。 你可以根据自己的需求来处理上传的文件,例如将其保存到磁盘或者进行其他操作。最后,我们返回一个HTTP响应来指示文件上传是否成功。 请注意,上述代码仅为示例,并且可能需要根据你的具体需求进行修改。同,你需要确保在Web.config或者Startup.cs文件中启用了ASP.NET Web API的支持。 希望这可以帮助到你!如果你还有其他问题,请随提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值