c#实现的文件上传下载工具类完整实例【上传文件自动命名】

  

本文实例讲述了c#实现的文件上传下载工具类。分享给大家供大家参考,具体如下:

  

这里给出的工具类是在VS2013环境下采用c#语言实现文件上,传下载功能。上传时,为避免文件名在服务器中重复,采用“服务器时间+ 8位随机码+文件名+文件后缀”的方式作为服务器上的文件名;下载采用的是之前的方式进行的,下载成功后可自定义文件的保存路径。

  

具体源码如下所示:

        使用系统;   使用先;   使用System.Net;   使用System.Net.Http;   使用System.Net.Http.Headers;   使用JYRS.Util;   名称空间JYRS.Utils   {   公开课FileHelper   {///& lt; summary>///将文件名解析成文件的上传路径///& lt;/summary>///& lt;参数name="文件名"祝辞文件名& lt;/param>///& lt;参数name=奥肪丁痹谖募肪? lt;/param>///& lt;返回path>文件在服务器上的路径& lt;/returns>   文件名transPath公共静态字符串(字符串,字符串路径)   {   createDir(路径);//取服务器时间+ 8位随机码作为部分文件名,确保文件名无重复   字符串nowStr=DateTime.Now.ToString (“yyyyMMddhhmmssff”) + Global.CreateRandomCode (8);//去掉后缀的文件名   字符串fileNameStr=文件名。Substring (0, fileName.LastIndexOf (“。”);//文件后缀   字符串的后缀=fileName.Substring (fileName.LastIndexOf (“。”) + 1);   如果(fileName.Trim () !=" ")   {//如果名称不为“”,说明该文件存在,否则说明该文件不存在   路径+=" \ \ " + fileNameStr + nowStr +“。”+后缀;//定义上传路径   }   返回路径;   }///& lt; summary>///创建文件目录///& lt;/summary>///& lt;参数name="根"在根目录& lt;/param>///& lt;回报祝辞& lt;/returns>   私有静态孔隙createDir(字符串根)   {//检查目录   如果(! Directory.Exists (System.Web.HttpContext.Current.Server.MapPath(根)))   {   Directory.CreateDirectory (System.Web.HttpContext.Current.Server.MapPath(根);   }   }///& lt; summary>///根据文件在服务器上的路径下载文件,此处采用的是之前的方式进行文件下载,下载成功后可自定义文件的保存路径///& lt;/summary>///& lt;参数name="文件名"祝辞文件名& lt;/param>///& lt;参数name=奥肪丁痹谖募肪? lt;/param>///& lt; returns> & lt;/returns>   公共静态HttpResponseMessage下载(文件名字符串,字符串路径)   {   试一试   {   var=new文件流流(路径,FileMode.Open);   HttpResponseMessage响应=new HttpResponseMessage (HttpStatusCode.OK);   响应。内容=new StreamContent(流);   response.Content.Headers。ContentType=new MediaTypeHeaderValue(“应用程序/八进制”);   response.Content.Headers。ContentDisposition=new ContentDispositionHeaderValue(“附件”)   {   文件名=文件名   };   返回响应;   }   抓   {   返回新HttpResponseMessage (HttpStatusCode.NoContent);   }   }   }   }      之前      

控制器层调用类

        (HttpGet)   公共HttpResponseMessage UploadAndDownload ()   {//文件上传到服务器上的根目录   字符串根=System.Web.Hosting.HostingEnvironment.MapPath(@ ~/上传);   字符串文件名="测试。docx”;//解析文件在服务器上的上传路径=FileHelper字符串路径。transPath(文件名,根);//获取要上传的文件=HttpContext.Current.Request.Files var文件;   HttpPostedFile文件=HttpContext.Current.Request.Files [0];//保存文件   file.SaveAs (System.Web.HttpContext.Current.Server.MapPath(路径));//下载词文件   FileHelper返回。下载(文件名、路径);   }      之前      视图层:

        & lt; a href=" http://localhost: 60179/api/CeshiController/UploadAndDownload”rel=巴獠縩ofollow””比;导出& lt;/a>      之前      

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#文件操作常用技巧汇总》、《c#遍历算法与技巧总结》,《c#程序设计之线程使用技巧总结》,《c#常见控件用法教程》、《WinForm控件用法总结》,《c#数据结构与算法教程》及《c#面向对象程序设计入门教程》

  

希望本文所述对大家c#程序设计有所帮助。

c#实现的文件上传下载工具类完整实例【上传文件自动命名】