文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,下面几种方式是比较常用的方法:
1.防止未选中文件报错
1 2 3 4 5 6 7 8 9 10 11 12 |
if(fileUplad.HasFile==true)//判断是否选中文件 { //将相对路径转换为物理路径 // ~:相对于当前项目的根目录 // .:相对于当前文件所在的目录 //..:上级目录 fuEquipImage.SaveAs(Server.MapPath("~//Upload//" + fuEquipImage.FileName)); } else { //提示未选中文件 } |
2. 判断文件类型
1 2 3 4 5 6 7 8 9 10 |
//Substring()截取文件类型的字符串 //LastIndexOf()是获取获取某个字符在最后一个位置的索引 string fileType=fileUpload.FileName.Substring(fileUpload.FileName.LastIndexOf(".")+1); if(fileType=="jpg") { //执行上传代码 }else { //提示文件类型错误 } |
3.下载文件的几种方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
//1.使用<a></a>标签下载 //缺点:图片和文本会直接显示出来 <a href="/Upload/a.zip">点击下载</a> //2.Response.TransmitFile() //添加按钮,并添加点击事件 //文件类型 Response.ContentType="application/x-zip-compressed"; //文件头 Response.AddHeader("Content-Disposition","attachment;filename=a.zip"); Response.TransmitFile("~/Upload/a.zip"); Response.WriteFile("~/Upload/a.zip"); //停止响应流,防止下载整个网页 Response.End(); //3.Response.WriteFile() Response.ContentType="application/x-zip-compressed"; Response.AddHeader("Content-Disposition","attachment;filename=a.zip"); Response.WriteFile("~/Upload/a.zip"); Response.End(); //4.使用<a></a>标签传入参数进行下载 //多数情况下常用此种方式 //获取传递的文件名参数 protected void Page_Load(object sender, EventArgs e) { string filename=Request.QueryString["filename"]; Response.AddHeader("Content-Disposition","attachment;filename="+filename); Response.WriteFile("~/Upload/"+filename); Response.End(); } //调用方式 <a href="Download.aspx?filename=aa.txt">点击下载aa.txt</a> <a href="Download.aspx?filename=bb.txt">点击下载bb.txt</a> |
0 条评论