解决方案 »
- 问一个问题,如何更改网站前台模板?
- 并非所有的代码都有返回值的问题
- Microsoft.Visual.SourceSafe.2005
- .net项目完成之后,哪些文件可以不用上传啊?
- C#写的在线编辑器(webHtmlEditor),能用在用VB.net写的ASP.net程序中吗?
- ASP.NET技术交流QQ群28457054 ,欢迎高手加入!
- 请教如何让ASP.Net日历只显示当月的日期。其它月份的日期不要显示?
- 比较BT的问题,有关UserControl的. 100分奉上.
- ASP.NET中如何引用自定义的类?
- asp.net 问题
- [求助]httpd.ini url重写出了些问题
- 求大神-Web页面数据导入到Excel中最新版的
http://zzk.cnblogs.com/s?w=blog%3Ainsus+%E4%B8%8A%E4%BC%A0&t=http://www.cnblogs.com/insus/archive/2013/05/09/3066347.html
没看到那个引用有Using Insus.NET
protected void btnUp_Click(object sender, EventArgs e)
{
string path = Server.MapPath("./") + "upfile\\"; //获取当前目录下upfile文件夹在服务器上的绝对地址,作为图片保存地址。
StringBuilder strb = new StringBuilder(); //定义可变字符字符串变量,实现字符的动态重组
string FullFileName = this.UpLoadFile.PostedFile.FileName; //获得客户浏览器选择文件的全部路径以及文件名
string UpFileName = FullFileName.Substring(FullFileName.LastIndexOf("\\") + 1); //以"\"为索引,截取文件名,来用获取文件格式
string FileType = UpFileName.Substring(UpFileName.LastIndexOf(".") + 1); //以"."为索引,截取文件扩展名
UpFileName = CreateDateAndRandomString() + "." + FileType; //重新组合上传文件的名称
UpFileName = UpFileName.ToLower(); //全部设置为小写,避免带来的不方便
FileType = FileType.ToLower(); //设置为小写,主要用来判断
if (FileType == "bmp" || FileType == "jpg" || FileType == "gif") //判断上传文件类型,这样可以屏蔽用户扩展名的大小写不统一
{
this.UpLoadFile.PostedFile.SaveAs(Server.MapPath("upfile") + "\\" + UpFileName); //执行文件上传操作
this.FileDetail.Visible = true;//显示上传文件信息
//显示上传文件的名称、类型和大小
this.FileName.InnerHtml = this.UpLoadFile.PostedFile.FileName;
this.FileType.InnerHtml = this.UpLoadFile.PostedFile.ContentType;
this.FileSize.InnerHtml = this.UpLoadFile.PostedFile.ContentLength.ToString();
this.SaveURL.InnerHtml = path + UpFileName; //显示保存到服务器端文件的路径
this.Image1.ImageUrl = "upfile" + "\\" + UpFileName; //设置upfile的路径来显示图片
this.Image1.Visible = true;
Response.Write("<script>window.alert('文件上传成功!');</script>"); //提示用户成功
}
else
{
Response.Write("<script>window.alert('文件格式错误!只接受bmp,jpg,gif格式的文件');</script>"); //提示格式错误
}
}
public string CreateDateAndRandomString()
{
StringBuilder strbder = new StringBuilder(); //定义可变字符字符串变量,实现字符的动态重组
//以下操作是为了避免在同一时间有多人同时上传,造成文件名相同而发生覆盖现象,
//这里以长时间加随机数来尽量避免,可以加大随机数而继续降低重名几率
System.DateTime currentTime = new System.DateTime(); //创建时间对象
currentTime = System.DateTime.Now; //设置当前时间
strbder.Append(currentTime.Year.ToString()); //获取当前年份字符串,并追加到strbder变量的结尾
strbder.Append(currentTime.Month.ToString()); //获取当前月份字符串,并追加到strbder变量的结尾
strbder.Append(currentTime.Day.ToString()); //获取当前日期字符串,并追加到strbder变量的结尾
strbder.Append(currentTime.Hour.ToString()); //获取当前时针数字符串,并追加到strbder变量的结尾
strbder.Append(currentTime.Minute.ToString()); //获取当前分针数字符串,并追加到strbder变量的结尾
strbder.Append(currentTime.Second.ToString()); //获取当前秒针数字符串,并追加到strbder变量的结尾
Random rd = new Random(); //创建随机对象
strbder.Append(rd.Next(1, 200).ToString()); //生成一个1~200之间的随机数,并追加到strbder变量的结尾
return strbder.ToString();
}