C# WinForm 文件上传下载

摘要:
/////WebClient将文件上载到服务器//////文件名,完整路径格式//服务器文件夹路径privatevoidUpLoadFile(stringfileNamePath,stringuriString){stringfil
/// <summary>
  /// WebClient上传文件至服务器
  /// </summary>
  /// <param name="fileNamePath">文件名,全路径格式</param>
  /// <param name="uriString">服务器文件夹路径</param>
  private void UpLoadFile(string fileNamePath,string uriString)
  {
   string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\") + 1);
   NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf(".")); 
   string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
   if(uriString.EndsWith("/") == false) uriString = uriString + "/";

   uriString = uriString + NewFileName;
   /// 创建WebClient实例
   WebClient myWebClient = new WebClient();
   myWebClient.Credentials = CredentialCache.DefaultCredentials;

   // 要上传的文件
   FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
   //FileStream fs = OpenFile();
   BinaryReader r = new BinaryReader(fs);
   try
   {
    //使用UploadFile方法可以用下面的格式
    //myWebClient.UploadFile(uriString,"PUT",fileNamePath);
    byte[] postArray = r.ReadBytes((int)fs.Length);
    Stream postStream = myWebClient.OpenWrite(uriString,"PUT");
    if(postStream.CanWrite)
    {
     postStream.Write(postArray,0,postArray.Length);
    }
    else
    {
     AppHelper.MessageService.ShowError("文件目前不可写!");
    }
    postStream.Close();
   }
   catch
   {
    AppHelper.MessageService.ShowError("文件上传失败,请稍候重试~");
   }
  }


  /// <summary>
  /// 下载服务器文件至客户端

  /// </summary>
  /// <param name="URL">被下载的文件地址,绝对路径</param>
  /// <param name="Dir">另存放的目录</param>
  public void Download(string URL,string Dir)
  {
   WebClient client = new WebClient();
   string fileName = URL.Substring(URL.LastIndexOf("\") + 1);  //被下载的文件名

   string Path = Dir+fileName;   //另存为的绝对路径+文件名
   
   try
   {
    WebRequest myre=WebRequest.Create(URL); 
   }
   catch
   {
    //MessageBox.Show(exp.Message,"Error"); 
   }
   
   try
   {
    client.DownloadFile(URL,fileName);
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    BinaryReader r = new BinaryReader(fs);
    byte[] mbyte = r.ReadBytes((int)fs.Length);

    FileStream fstr = new FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write); 

    fstr.Write(mbyte,0,(int)fs.Length);
    fstr.Close(); 

   } 
   catch
   {
    //MessageBox.Show(exp.Message,"Error");
   } 
  } 
 

免责声明:文章转载自《C# WinForm 文件上传下载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle向MySQL迁移的注意点整理GeeTest 极验验证下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# WINFORM 编程中,选择**文件夹**而不是文件的方法(转)

 我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法。 法一:    用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能。下面来看看具体是怎么实现的。  首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class)。 因为Fo...

转载:winform的DataGridView中用C#实现按钮列置灰

DataGridView 控件包括 DataGridViewButtonCell 类,该类用于显示具有类似按钮的用户界面 (UI) 的单元格。但 DataGridViewButtonCell 不提供禁用由单元格显示的按钮外观的方式。下面的代码示例演示如何自定义 DataGridViewButtonCell 类来显示可以显示为禁用的按钮。本示例定义一个新的单...

winform中 跨线程启动UI

C#的winform程序中,是不可以从UI窗口主线程之外的线程去直接操作窗口控件的。确切的解释是,不能从创建控件的线程以外的线程去处理控件的操作,比如修改属性等。以下是跨线程操作控件的报错信息:线程间操作无效: 从不是创建控件“textBox4”的线程访问它解决办法解决方案有两个:方法一,设定Control类的CheckForIllegalCrossThr...

WinForm中使用DXperience控件中XtraForm,如何实现换肤

在DevExpress.XtraEditors.XtraForm中,窗体的样式和皮肤有UseDefaultLookAndFeel属性。设置为false,就可以直接再属性里面修改样式和皮肤了。如果设置为true,可以再里面放控件defaultLookAndFeel,设置defaultLookAndFeel的样式和皮肤,XtraForm窗体的样式和皮肤就可以随...

C#winform解析marc显示在datagridview中以及marc卡片显示

结果显示:marc显示: 卡片显示: 程序一个类: public class MARC { #region 界面上要显示的元素 public string ztm = "";//正题名 public string ftm = "";//副题名 public string fcm = "";//分册(辑)名 public string fch = "";...

winform 中 MessageBox 用法大全

(转自:http://blog.csdn.net/xuenzhen123/article/details/4808005)  MessageBox.Show()共有21中重载方法。现将其常见用法总结如下:   1.MessageBox.Show(“Hello~~~~”); 最简单的,只显示提示信息。 2.MessageBox.Show(“There ar...