C#文件上传下载

转载自:http://blog.csdn.net/pan_junbiao/article/details/7185382上传页面:

上传代码:在UploadFile.aspx.cs键入如下代码:

Random rnd = new Random(); //产生随机数 

private string _directory = @"/File/UploadFile"; //目录

protected void Page_Load(object sender, EventArgs e) { 

try { if (Request.Files.Count > 0) {

 //判断文件大小 int length = Request.Files[0].ContentLength; if (length > 1048576) { Response.Write("文件大于1M,不能上传"); return; } string type = Request.Files[0].ContentType; string fileExt = Path.GetExtension(Request.Files[0].FileName).ToLower(); //只能上传图片,过滤不可上传的文件类型 string fileFilt = ".gif|.jpg|.php|.jsp|.jpeg|.png|......"; if (fileFilt.IndexOf(fileExt) <= -1) { Response.Write("对不起!请上传图片!!"); return; } else { string fileName = Server.MapPath(_directory) + "\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + rnd.Next(10, 99).ToString() + fileExt; Request.Files[0].SaveAs(fileName); Response.Write("上传成功!"); } } } catch { throw new Exception(); } } 下载代码:创建DownloadFile.aspx,在DownloadFile.aspx.cs键入如下方法:[csharp] view plain copy/// /// C#文件下载 /// /// public void MyDownload(string filename) { string path = Server.MapPath("/File/"+filename); if(!File.Exists(path)) { Response.Write("对不起!文件不存在!!"); return; } System.IO.FileInfo file = new System.IO.FileInfo(path); string fileFilt=".asp|.aspx|.php|.jsp|.ascx|.config|.asa|......"; //不可下载的文件,务必要过滤干净 string fileName = file.Name; string fileExt = fileName.Substring(filename.LastIndexOf(".")).Trim().ToLower(); if(fileFilt.IndexOf(fileExt)!=-1) { Response.Write("对不起!该类文件禁止下载!!"); } else { Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName)); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = GetContentType(HttpUtility.UrlEncode(fileExt)); Response.WriteFile(file.FullName); Response.End(); } } /// /// 获取下载类型 /// /// /// public string GetContentType(string fileExt) { string ContentType; switch (fileExt) { case ".asf": ContentType = "video/x-ms-asf"; break; case ".avi": ContentType = "video/avi"; break; case ".doc": ContentType = "application/msword"; break; case ".zip": ContentType = "application/zip"; break; case ".xls": ContentType = "application/vnd.ms-excel"; break; case ".gif": ContentType = "image/gif"; break; case ".jpg": ContentType = "image/jpeg"; break; case ".jpeg": ContentType = "image/jpeg"; break; case ".wav": ContentType = "audio/wav"; break; case ".mp3": ContentType = "audio/mpeg3"; break; case ".mpg": ContentType = "video/mpeg"; break; case ".mepg": ContentType = "video/mpeg"; break; case ".rtf": ContentType = "application/rtf"; break; case ".html": ContentType = "text/html"; break; case ".htm": ContentType = "text/html"; break; case ".txt": ContentType = "text/plain"; break; default: ContentType = "application/octet-stream"; break; } return ContentType; } *如何获取现有文件的ContentType属性[csharp] view plain copy/// /// 获取现有文件的ContentType属性 /// /// /// public string GetFileContentType(string filename) { string[] array = filename.Split('.'); string result = string.Empty; string suffix = "." + array[array.Length - 1]; Microsoft.Win32.RegistryKey rg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(suffix); object obj = rg.GetValue("Content Type"); result = obj != null ? obj.ToString() : string.Empty; rg.Close(); return result; }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值