本文实例讲述了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#实现的文件上传下载工具类完整实例【上传文件自动命名】