tnblog
首页
视频
资源
登录

上传文件到服务器及 下载到 客户端

5759人阅读 2018/12/20 14:00 总访问:41611 评论:0 收藏:0 手机
分类: C#

                 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Net;
  5. using System.IO;
  6. namespace Common
  7. {
  8.     public class WebFileUpDown
  9.     {
  10.         /// <summary>
  11.         /// WebClient上传文件至服务器
  12.         /// </summary>
  13.         /// <param name="fileNamePath">文件名,全路径格式</param>
  14.         /// <param name="uriString">服务器文件夹路径</param>
  15.         /// <param name="IsAutoRename">是否自动按照时间重命名</param>
  16.         public static void UpLoadFile(string fileNamePath, string NewName, string Weburl)
  17.         {
  18.             string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);
  19.             string NewFileName = NewName == "" ? fileName : NewName;
  20.             string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
  21.             if (Weburl.EndsWith("/") == false) Weburl = Weburl + "/";
  22.             Weburl = Weburl + NewFileName;
  23.             /**/
  24.             /// 创建WebClient实例
  25.             WebClient myWebClient = new WebClient();
  26.             myWebClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
  27.             myWebClient.Credentials = CredentialCache.DefaultCredentials;
  28.             // 要上传的文件
  29.             FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
  30.             BinaryReader r = new BinaryReader(fs);
  31.             byte[] postArray = r.ReadBytes((int)fs.Length);
  32.             Stream postStream = myWebClient.OpenWrite(Weburl, "PUT");
  33.             try
  34.             {
  35.                 if (postStream.CanWrite)
  36.                 {
  37.                     postStream.Write(postArray, 0, postArray.Length);
  38.                     postStream.Close();
  39.                     fs.Dispose();
  40.                 }
  41.                 else
  42.                 {
  43.                     postStream.Close();
  44.                     fs.Dispose();
  45.                 }
  46.             }
  47.             catch (Exception err)
  48.             {
  49.                 postStream.Close();
  50.                 fs.Dispose();
  51.                 throw err;
  52.             }
  53.             finally
  54.             {
  55.                 postStream.Close();
  56.                 fs.Dispose();
  57.             }
  58.         }
  59.         /// <summary>
  60.         /// 下载服务器文件至客户端
  61.         /// </summary>
  62.         /// <param name="URL">被下载的文件地址,绝对路径</param>
  63.         /// <param name="Dir">另存放的目录</param>
  64.         public static void Download(string URL, string Dir)
  65.         {
  66.             WebClient client = new WebClient();
  67.             string fileName = URL.Substring(URL.LastIndexOf("/") + 1);  //被下载的文件名
  68.             string Path = Dir;   //另存为的绝对路径+文件名
  69.             try
  70.             {
  71.                 client.DownloadFile(URL, Path);
  72.             }
  73.             catch (Exception ex)
  74.             {
  75.                 throw ex;
  76.             }
  77.         }
  78.     }
  79. }


评价

根据客户端勾选信息,根据模板批量导出word

///&lt;summary&gt; ///导出 ///&lt;paramname=&quot;param&quot;&gt;前端值数组&lt;/param&gt; ///&lt;returns&gt;&lt;...

WCF客户端数据条数超出限制

在SqlServer中使用循环语句添加多条测试数据在WCF客户端调用数据库数据超出限制最大限制条数这时就会报错。此时可以进行修...

gRPC客户端流requestStream.Current为空的问题

gRPC客户端流requestStream.Current为空的问题流式传输不能直接获取,这样requestStream.Current会为空比如这里我们传递文...

gRPC客户端流式传递多个参数

客户端流式中,想要获取数据先要执行MoveNext一下或者获取到的对象是空的,但是有些时候现在在这之前就传递参数了可以借用M...

.net core gRPC 客户端流式上传图片,文件。gRPC文件分段传输

html前台,完全一样:&lt;formmethod=&quot;post&quot;action=&quot;/home/UpLoadImgStream&quot;enctype=&quot;multipart/f...

SVN 客户端,服务器端下载,安装过程

客户端:首先打开浏览器上百度搜索“SVN”如下图:或者点击:[https://tortoisesvn.net/downloads.html](https://tortoises...

consul 本机可以访问,客户端无法访问

是因为默认的启动方式consul agent -dev 只能本机才可以访问如果要外网也可以访问加一个-client 0.0.0.0即可consul agent ...

使用cmd模拟多个.net core项目的客户端

想要模拟多个客户端只要重复下面的操作就行,但是端口号千万不能重复了找到项目路径输入cmd在控制台中输入dotnet run命令808...
如果帅也是一种错,那我宁愿一错再错。。。。
排名
51
文章
6
粉丝
1
评论
0
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
人生三大错觉,我能反杀,下一发能出金,她喜欢我。