1. 程式人生 > >.NET 圖片上傳接收類

.NET 圖片上傳接收類

d+ index extension count etime control ali lar 文件夾

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 = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b"; } //大小驗證 if (checkSize(size)) { //文件大小超出網站限制 state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236"; } //保存圖片 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(@"[\\\/\:\*\?\042\<\>\|]"); format = invalidPattern.Replace(format, ""); return format + ext; } } }

.NET 圖片上傳接收類