zoukankan      html  css  js  c++  java
  • .NET 图片上传接收类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using System.Configuration;
    using System.Web.Configuration;
    using System.Collections;
    using System.Text.RegularExpressions;
    
    namespace Visaok.ul.UserCenter.dialogs.attachment
    {
        public partial class upfile : System.Web.UI.Page
        {
            public string s;
    
            private string state = "SUCCESS";
    
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
    
                string[] filetype = { ".rar", ".doc", ".docx", ".zip", ".pdf", ".txt", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".mov", ".wmv", ".mp4", ".webm",".jpg" };    //文件允许格式
                int size = 100;   //文件大小限制,单位MB,同时在web.config里配置环境默认为100MB
    
                string uploadpath = Request.MapPath("~/");    //取得网站根目录路径
    
    
                //格式验证
                if (checkType(filetype))
                {
                    //不允许的文件类型
                    state = "u4e0du5141u8bb8u7684u6587u4ef6u7c7bu578b";
                }
                //大小验证
                if (checkSize(size))
                {
                    //文件大小超出网站限制
                    state = "u6587u4ef6u5927u5c0fu8d85u51fau7f51u7ad9u9650u5236";
                }
    
                //保存图片
                if (state == "SUCCESS")
                {
                    //目录创建
                    string Path = DateTime.Now.ToString("yyMMddHHmmss") + (new Random().Next(0, 99).ToString("00"));
                    createFolder(uploadpath + "Peerfile\"+ Path);
    
                    if (string.IsNullOrEmpty(FileUpload1.FileName)) { Response.Write("未选择文件"); return; }
                    FileUpload1.SaveAs(uploadpath + "Peerfile\" + Path+"\" + FileUpload1.FileName);  //存储文件到文件夹
                    FileInfo pathinfo = new FileInfo(uploadpath + "Peerfile\" + Path + "\" + FileUpload1.FileName.ToString());
                    string pathtwo = WebConfigurationManager.AppSettings["path"];
                    string RootDirectory = WebConfigurationManager.AppSettings["RootDirectory"];
                    s = "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="" + pathtwo + Path + "/" + pathinfo.Name + ""><img style="display:inline-block;" src="" + RootDirectory + "Peer/PeerCenter/dialogs/attachment/images/icon_rar.gif">" + pathinfo.Name + "</a></b>&nbsp;&nbsp;&nbsp;&nbsp;";
                    div1.InnerHtml = pathinfo.Name + "上传成功";
                }
                else
                {
                    div1.InnerHtml = "上传的格式不允许";
                }
            }
    
        /**
        * 获取文件信息
        * @param context
        * @param string
        * @return string
        */
    
            public string getOtherInfo(HttpContext cxt, string field)
            {
                string info = null;
                if (cxt.Request.Form[field] != null && !String.IsNullOrEmpty(cxt.Request.Form[field]))
                {
                    info = field == "fileName" ? cxt.Request.Form[field].Split(',')[1] : cxt.Request.Form[field];
                }
                return info;
            }
    
     
            /**
             * 重命名文件
             * @return string
             */
    
            private string reName()
            {
                return System.Guid.NewGuid() + getFileExt();
            }
    
            /**
             * 文件类型检测
             * @return bool
             */
    
            private bool checkType(string[] filetype)
            {
               string currentType = getFileExt();
                return Array.IndexOf(filetype, currentType) == -1;
            }
    
            /**
             * 文件大小检测
             * @param int
             * @return bool
             */
    
            private bool checkSize(int size)
            {
                //ContentLength
                return FileUpload1.PostedFile.ContentLength>= (size * 1024 * 1024);
            }
    
            /**
             * 获取文件扩展名
             * @return string
             */
    
            private string getFileExt()
            {
                string[] temp = FileUpload1.FileName.Split('.');
                return "." + temp[temp.Length - 1].ToLower();
            }
    
            /**
             * 按照日期自动创建存储文件夹
             */
    
            private void createFolder(string fintPath)
            {
                if (!Directory.Exists(fintPath))
                {
                    Directory.CreateDirectory(fintPath);
                }
            }
    
            /**
             * 删除存储文件夹
             * @param string
             */
    
            public void deleteFolder(string path)
            {
                //if (Directory.Exists(path))
                //{
                //    Directory.Delete(path, true);
                //}
            }
    
            public static string Format(string format, string filename)
            {
                if (String.IsNullOrWhiteSpace(format))
                {
                    format = "{filename}{rand:6}";
                }
                string ext = Path.GetExtension(filename);
                filename = Path.GetFileNameWithoutExtension(filename);
                format = format.Replace("{filename}", filename);
                format = new Regex(@"{rand(:?)(d+)}", RegexOptions.Compiled).Replace(format,
                new MatchEvaluator(delegate(Match match)
                {
                    var digit = 6;
                    if (match.Groups.Count >2)
                    {
                        digit =Convert.ToInt32(match.Groups[2].Value);
                    }
                    var rand = new Random();
                    return rand.Next((int)Math.Pow(10,digit),(int)Math.Pow(10,digit +1)).ToString();
                }));
                format = format.Replace("{time}", DateTime.Now.Ticks.ToString());
                format = format.Replace("{yyyy}", DateTime.Now.Year.ToString());
                format = format.Replace("{yy}", (DateTime.Now.Year % 100).ToString("D2"));
                format = format.Replace("{mm}", DateTime.Now.Month.ToString("D2"));
                format = format.Replace("{dd}", DateTime.Now.Day.ToString("D2"));
                format = format.Replace("{hh}", DateTime.Now.Hour.ToString("D2"));
                format = format.Replace("{ii}", DateTime.Now.Minute.ToString("D2"));
                format = format.Replace("{ss}", DateTime.Now.Second.ToString("D2"));
                var invalidPattern = new Regex(@"[\/:*?42<>|]");
                format = invalidPattern.Replace(format, "");
                return format + ext;
            }
        }
    
    }
  • 相关阅读:
    逆向测试设计
    JNLP
    3. 技术专题
    8.2. Angular使用Material控件库
    Spring Boot Actuator
    安装
    apk文件结构及反编译/代码混淆
    Visual Studio中attach进程进行调试
    .NET反编译
    3. 技术专题
  • 原文地址:https://www.cnblogs.com/Xanthus/p/9595614.html
Copyright © 2011-2022 走看看