在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. C#实现Web文件的上传 复制代码 代码如下: <form method=post encType=multipart/ form-data runat="server"> 如果没有这个属性,就不能实现上传。 然后在此Web Form中增加一个Web Form类的Button,双击Button添加如下代码: 复制代码 代码如下: //上传图片的程序段 DateTime now = DateTime.Now ; //取现在时间到DataTime类的对象now中 string strBaseLocation = "D:\web\FC\pic\"; //这是文件将上传到的服务器的绝对目录 if (PreviousFile1.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0 { PreviousFile1.PostedFile.SaveAs(strBaseLocation+now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg"); //执行上传,并自动根据日期和文件大小不同为文件命名,确保不重复 Label1.Text="图片1已经上传,文件名为:"+now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg"; navigator.Insert(System.Xml.TreePosition.After, XmlNodeType.Element,"pic1","","") ; navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Text,"pic1","","") ; navigator.Value= now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg" ; navigator.MoveToParent() ; } 上面的代码用于笔者开发的一个使用XML文件存储新闻信息的系统中,后面几句代码作用是写上传文件信息到XML文件中。如果要上传其他类型文件,只需要将jpg改为相应类型的后缀名即可,如改为doc即可上传Word文件,浏览器即可直接浏览上传的Word文件。 【注意事项】 1. 上传文件不可以无限大; 2. 要注意IIS的安全性方面的配合; 3. 用Visual Studio 的安装项目做安装程序的时候,请注意安装程序所在的绝对路径问题; 4. 注意文件上传后的重名问题。 2. C#实现Web文件的上传 复制代码 代码如下: using System; using System.Data; using System.Data.SqlClient; using System.Web.UI.HtmlControls; using System.Drawing.Imaging; using System.Configuration; using System.Drawing; namespace zhuanti { /// <summary> /// 这是一个用于玩家投稿中实现玩家上传文件功能中用到的相应的函数的功能模块 /// </summary> public class FileUpload { public enum File //定义一个人用于存放玩家上传文件信息的一个数组 { FILE_SIZE , //大小 FILE_POSTNAME, //类型(文件后缀名) FILE_SYSNAME , //系统名 FILE_ORGINNAME, //原来的名字 FILE_PATH //文件路径 } private static Random rnd = new Random(); //获取一个随机数 public static string[] UploadFile(HtmlInputFile file,string Upload_Dir) //实现玩家文件上传功能的主函数 { string[] arr = new String[5]; string FileName = GetUniquelyString(); //获取一个不重复的文件名 string FileOrginName = file.PostedFile.FileName.Substring (file.PostedFile.FileName.LastIndexOf("\")+1);//获取文件的原始名 if(file.PostedFile.ContentLength<=0) { return null; } string postFileName; string FilePath = Upload_Dir.ToString(); string path = FilePath + "\"; try { int pos = file.PostedFile.FileName.LastIndexOf(".")+1; postFileName = file.PostedFile.FileName.Substring(pos,file.PostedFile.FileName.Length-pos); file.PostedFile.SaveAs(path+FileName+"."+postFileName); //存储指定的文件到指定的目录 } catch(Exception exec) { throw(exec); } double unit = 1024; double size = Math.Round(file.PostedFile.ContentLength/unit,2); arr[(int)File.FILE_SIZE] = size.ToString(); //文件大小 arr[(int)File.FILE_POSTNAME] = postFileName; //文件类型(文件后缀名) arr[(int)File.FILE_SYSNAME] = FileName; //文件系统名 arr[(int)File.FILE_ORGINNAME] = FileOrginName; //文件原来的名字 arr[(int)File.FILE_PATH]=path+FileName+"."+postFileName; //文件路径 return arr; } public static bool OperateDB(string sqlstr) //建立一个和数据库的关联 { if (sqlstr==String.Empty) return false; SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connstring"]); SqlCommand myCommand = new SqlCommand(sqlstr, myConnection); myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); return true; } public static string GetUniquelyString() //获取一个不重复的文件名 { const int RANDOM_MAX_VALUE = 1000; string strTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond; DateTime dt =DateTime.Now; int rndNumber = rnd.Next(RANDOM_MAX_VALUE); strYear = dt.Year.ToString (); strMonth = (dt.Month > 9)? dt.Month.ToString() : "0" + dt.Month.ToString(); strDay = (dt.Day > 9)? dt.Day.ToString() : "0" + dt.Day.ToString(); strHour = (dt.Hour > 9)? dt.Hour.ToString() : "0" + dt.Hour.ToString(); strMinute = (dt.Minute > 9)? dt.Minute.ToString() : "0" + dt.Minute.ToString(); strSecond = (dt.Second > 9)? dt.Second.ToString() : "0" + dt.Second.ToString(); strMillisecond = dt.Millisecond.ToString(); strTemp = strYear + strMonth + strDay +"_"+ strHour + strMinute + strSecond +"_"+ strMillisecond +"_"+ rndNumber.ToString () ; return strTemp; } } } |
请发表评论