注释详细,大家自己看把,欢迎提出宝贵意见!
System.Text.StringBuilder strbder = new System.Text.StringBuilder(); //StringBuilder对象组建字符串
string FullFileName = this.File1.PostedFile.FileName; //获得客户浏览器选择文件的全部路径以及文件名
string UpFileName = FullFileName.Substring( FullFileName.LastIndexOf("\\") + 1); //以"\"为索引截取获得文件名,用途是获得文件格式
string FileType = UpFileName.Substring( UpFileName.LastIndexOf(".") + 1 ); //以"."为索引街区获得文件类型
//以下操作是为了避免在同一时间有多人同时上传,造成文件名相同而发生覆盖现象,
//这里以长时间加随机数来尽量避免,可以加大随机数而继续降低重名几率
System.DateTime currentTime=new System.DateTime(); //创建时间对象
currentTime = System.DateTime.Now; //设置当前时间
strbder.Append(currentTime.Year.ToString()); //年
strbder.Append(currentTime.Month.ToString()); //月
strbder.Append(currentTime.Day.ToString()); //日
strbder.Append(currentTime.Hour.ToString()); //小时
strbder.Append(currentTime.Minute.ToString()); //分钟
strbder.Append(currentTime.Second.ToString()); //秒
Random objRdm = new Random(); //创建随机对象
strbder.Append(objRdm.Next(1,200).ToString()); //生成一个1--200之间的随机数
UpFileName = strbder.ToString() + "." + FileType; //正式组建在服务器存储的文件名
UpFileName = UpFileName.ToLower(); //全部设置为小写,避免带来的不方便
FileType = FileType.ToLower(); //设置为小写,主要用来判断
if( FileType == "bmp" || FileType =="jpg" || FileType =="gif" ) //接受的类型,这样可以屏蔽用户扩展名的大小写不统一
{
this.File1.PostedFile.SaveAs( Server.MapPath("up") + "\\" + UpFileName ); //正式上传操作
this.Image1.ImageUrl = "up" + "\\" + UpFileName; //设置Image1的路径来显示图片
this.Image1.Visible = true;
Response.Write("<script>window.alert('文件上传成功!');</script>"); //提示用户成功
}
else
{
Response.Write("<script>window.alert('文件格式错误!只接受bmp,jpg,gif格式的文件');</script>"); //提示格式错误
}
请发表评论