c# txt 文件上傳、寫入TXT文件、創建圖形驗證碼


asp.net mvc 圖片上傳

html 

在使用包含文件上傳控件的表單時,必須使用 enctype="multipart/form-data" 屬性

<form enctype="multipart/form-data" action="upload" method="post" >
        <div>
            <input type="file" name="imgFile">
            <input type="submit" value="上傳">
        </div>
    </form>

后台

 public JsonResult upload(HttpPostedFileBase imgFile) {

            string da = DateTime.Now.ToString("yyyy-MM-ddHHmmss");
            //獲取虛擬路徑
            var fileName = Server.MapPath(@"~/assets/");
            //獲取文件后綴
            string ExtName = Path.GetExtension(imgFile.FileName).ToLower();
            //獲取絕對路徑
            string imgPath = @"E:\img\" + da + ExtName;
            FileInfo file1 = new FileInfo(imgPath);
            //獲取父目錄路徑
            var di1 = file1.Directory;
            //判斷父目錄是否存在
            if (!di1.Exists)
                di1.Create();
            //判斷文件是否存在
            if (!file1.Exists)
            {
                //保存文件
                imgFile.SaveAs(imgPath);
            }
            return Json("success:true");
        }

 js上傳

  $('#file_upload').click(function () {
        var imgFile = new FormData();
        var files = $('#file')[0].files;
        if (files) {
            imgFile.append('imgFile', files[0]);
        }
        $.ajax({
            cache: false,
            type: 'post',
            dataType: 'json',
            url: 'upload',
            data: imgFile,
            contentType: false,
            processData: false,
            success: function (data) {
                alert(1);
            }
        });
    });

寫入txt

       public void WLog()
        {
            string da = DateTime.Now.ToString("yy-MM-dd");
            //獲取虛擬路徑
            var fileName = Server.MapPath(@"~/assets/");
            //獲取絕對路徑
            string absolute_path = @"E:\";
            //拼接文件路徑
            string path = fileName + "log/" + da + ".txt";
            //創建對文件的引用
            FileInfo file = new FileInfo(path);
            //獲取父目錄路徑
            var di = file.Directory;
            //判斷父目錄是否存在
            if (!di.Exists)
                di.Create();
            //判斷文件是否存在
            if (!file.Exists)
            {
                //創建文件 並釋放文件資源
                FileStream fs = file.Create();
                fs.Close();
                fs.Dispose();
            }
            //寫入流、釋放資源
            StreamWriter sw = file.AppendText();
            //追加數據;
            sw.Write(" 修改時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ",刪除號: 1111,被修改的賬戶:222,登錄名:3333,賬號所登錄的IP:1232546\r\n");
            sw.Close();
            sw.Dispose();

        }

 創建圖形驗證碼

        /// <summary>
        /// 創建圖形驗證碼
        /// </summary>
        /// <param name="validateNum">驗證碼長度</param>
        private void CreateImage(string validateNum)
        {
            if (validateNum == null || validateNum.Trim() == string.Empty)
                return;
            //生成BitMap圖像
            Bitmap image = new Bitmap(validateNum.Length * 10 + 12, 22);
            Graphics g = Graphics.FromImage(image);
            try
            {
                //生成隨機生成器
                Random random = new Random();
                //清空圖片背景
                g.Clear(Color.White);
                ////畫圖片的背景噪音線
                //for (int i = 0; i < 25; i++)
                //{
                //    int x1 = random.Next(image.Width);
                //    int x2 = random.Next(image.Width);
                //    int y1 = random.Next(image.Height);
                //    int y2 = random.Next(image.Height);
                //    g.DrawLine(new Pen(Color.Silver), x1, x2, y1, y2);
                //}
                Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
                g.DrawString(validateNum, font, brush, 2, 2);
                //畫圖片的前景噪音點
                for (int i = 0; i < 100; i++)
                {
                    int x = random.Next(image.Width);
                    int y = random.Next(image.Height);
                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
                }
                //畫圖片的邊框線
                //g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                //將圖像保存到指定流
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                Response.ClearContent();
                Response.ContentType = "image/Gif";
                Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM