c# 实现文件上传下载功能的实例代码

NuGet 安装SqlSugar

1.Model文件下新建 DbContext 类

 public class DbContext
  {
    public DbContext()
    {
      Db = new SqlSugarClient(new ConnectionConfig()
      {
        ConnectionString = "server=localhost;uid=root;pwd=woshishui;database=test",
        DbType = DbType.MySql,
        InitKeyType = InitKeyType.Attribute,//从特性读取主键和自增列信息
        IsAutoCloseConnection = true,//开启自动释放模式和EF原理一样我就不多解释了
    });
    //调式代码 用来打印SQL
    Db.Aop.OnLogExecuting = (sql, pars) =>
    {
      Console.WriteLine(sql + "\r\n" +
               Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
      Console.WriteLine();
    };

  }
  //注意:不能写成静态的,不能写成静态的
  public SqlSugarClient Db;//用来处理事务多表查询和复杂的操作
  public SimpleClient<uploading> uploadingdb { get { return new SimpleClient<uploading>(Db); } }//用来处理Student表的常用操作
}

2.建uploading实体类

[SugarTable("uploading")]
  public class uploading
  {
  //指定主键和自增列,当然数据库中也要设置主键和自增列才会有效
  [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
  public int id { get; set; }
  public string name { get; set; }
  public string path { get; set; }
}

3.Manager文件下建UploadingManager

 class UploadingManager : DbContext
  {
    public List<uploading> Query()
    {
      try
      {
        List<uploading> data = Db.Queryable<uploading>()
          .Select(f => new uploading
          {
            name = f.name,
            path = f.path
          })
          .ToList();
        return data;
      }
      catch (Exception e)
      {
        Console.WriteLine(e);
        throw;
      }
  }

  public List&lt;string&gt; GetName(string name)
  {
    List&lt;string&gt; data = Db.Queryable&lt;uploading&gt;()
      .Where(w=&gt;w.name== name)
      .Select(f =&gt; f.path)
      .ToList();
    return data;

  }
}

窗体加载Form1_Load

1.读取到数据库字段name并赋值

 private void Form1_Load(object sender, EventArgs e)
    {
      List<uploading> data = uploading.Query();
      foreach (var data1 in data)
      {
        comboBox1.Items.Add(data1.name);
      }
      comboBox1.SelectedIndex = 0;
  }

2.comboBox事件触发条件查询到上传的path

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      List<string> data = uploading.GetName(comboBox1.Text);
    for (int i = 0; i &lt; data.Count; i++)
    {
      textBox1.Text = data[0];
    }
  }

3.上传事件触发

 private void Button1_Click(object sender, EventArgs e)
    {
       string path = textBox1.Text;
      CopyDirs(textBox3.Text,
        path);
    }
 private void CopyDirs(string srcPath, string aimPath)
    {
      try
      {
        // 检查目标目录是否以目录分割字符结束如果不是则添加
        if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
        {
          aimPath += System.IO.Path.DirectorySeparatorChar;
        }
      // 判断目标目录是否存在如果不存在则新建
      if (!System.IO.Directory.Exists(aimPath))
      {
        System.IO.Directory.CreateDirectory(aimPath);
      }

      // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
      // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
      // string[] fileList = Directory.GetFiles(srcPath);
      string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
      // 遍历所有的文件和目录
      foreach (string file in fileList)
      {
        // 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
        if (System.IO.Directory.Exists(file))
        {
          CopyDir(file, aimPath + System.IO.Path.GetFileName(file));

          DisplaylistboxMsg(&quot;上传成功&quot;);
        }
        // 否则直接Copy文件
        else
        {
          System.IO.File.Copy(file, aimPath + System.IO.Path.GetFileName(file), true);
          DisplaylistboxMsg(&quot;上传成功&quot;);
        }
      }
    }
    catch (Exception e)
    {
      DisplaylistboxMsg(&quot;上传失败&quot; + e.Message);
    }
  }

4.下载事件触发

private void Button2_Click(object sender, EventArgs e)
    {
      CopyDir(@"\\10.55.2.3\mech_production_line_sharing\Test\" + textBox2.Text, textBox4.Text);
    }
private void CopyDir(string srcPath, string aimPath)

{

// 检查目标目录是否以目录分割字符结束如果不是则添加

if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)

{

aimPath += System.IO.Path.DirectorySeparatorChar;

}

    // 判断目标目录是否存在如果不存在则新建
    if (!System.IO.Directory.Exists(aimPath))
    {
      System.IO.Directory.CreateDirectory(aimPath);
    }

    // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
    // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
    // string[] fileList = Directory.GetFiles(srcPath);
    string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
    // 遍历所有的文件和目录
    foreach (string file in fileList)
    {
      // 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
      if (System.IO.Directory.Exists(file))
      {
        CopyDir(file, aimPath + System.IO.Path.GetFileName(file));
        DisplaylistboxMsg(&quot;下载成功&quot;);
      }
      // 否则直接Copy文件
      else
      {
        System.IO.File.Copy(file, aimPath + System.IO.Path.GetFileName(file), true);
        DisplaylistboxMsg(&quot;下载成功&quot;);
      }
    }
  }

以上就是c# 实现文件上传下载功能的实例代码的详细内容,更多关于c# 实现文件上传下载的资料请关注我们其它相关文章!

(0)

相关推荐

  • C# 文件上传下载(Excel导入,多线程下载)功能的实现代码

    废话不多说了,直接给大家贴代码,具体代码如下所示: //打开Excel文件,转换为DataTable DataTable dtExcel; private void OpenFile() { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Microsoft Excel files(*.xls)|*.xls;*.xlsx"; //筛选打开文件类型 :图片 *.jpg|*.jpg|*.bmp|*.bmp ;&q

  • C#实现文件上传与下载功能实例

    最近学习了 C#实现文件上传与下载,现在分享给大家. 1.C#文件上传 创建MyUpload.htm页面,用于测试 <form name="form1" method="post" action="UploadFile.aspx" id="form1" enctype="multipart/form-data"> <input type="file" id="

  • C#文件上传与下载的实现方法

    本文实例为大家分享了C#实现文件上传与下载的具体代码,供大家参考,具体内容如下 C#实现文件上传代码: public ActionResult Upload() { // var pathUrl = "http://" + Request.Url.Authority; var file = Request.Files["Filedata"]; var uploadFileName = file.FileName; string filePath = "/F

  • C#实现文件上传及文件下载功能实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public ActionResult Upload() { // var pathUrl = "http://" + Request.Url.Authority; var file = Request.Files["Filedata"]; var uploadFileName = file.FileName; string filePath = "/File/" + uploadFileNa

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

    本文实例讲述了C#实现的文件上传下载工具类.分享给大家供大家参考,具体如下: 这里给出的工具类是在VS2013环境下采用C#语言实现文件上传.下载功能.上传时,为避免文件名在服务器中重复,采用"服务器时间+8位随机码+文件名+文件后缀"的方式作为服务器上的文件名:下载采用的是WebAPI的方式进行的,下载成功后可自定义文件的保存路径. 具体源码如下所示: using System; using System.IO; using System.Net; using System.Net.

  • C#实现文件上传下载Excel文档示例代码

    要求 环境信息:WIN2008SERVER  开发工具:VS2015 开发语言:C# 要求: 1.点击同步数据后接口获取数据展示页面同时过滤无效数据并写入数据库,数据可导出Excel并支持分类导出 2.Excel导入确认数据,调用服务处理数据后写入数据库,并支持分类导出 这两天搞了一个小功能,其他的不说了针对Excel导入导出做一个小总结 导出文件 这里的文件导出是底层写好的,个人理解有限而且毕竟属于公司就不贴具体代码了,简单说一下思路 首先是建立导出Excel管理类,用于管理Excel文件导出

  • c# 实现文件上传下载功能的实例代码

    NuGet 安装SqlSugar 1.Model文件下新建 DbContext 类 public class DbContext { public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "server=localhost;uid=root;pwd=woshishui;database=test", DbType = DbType.MySql, InitKeyTy

  • Java文件上传下载、邮件收发实例代码

    文件上传下载 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> 3. 指定表单类型: 默认类型:enctype="application/x-www-form-urlencoded" 文件上传类型:multipart/form-data FileUpload 文件上传功能开发中比较常用,apache也提供了文件上传组件! FileUpload组件: 1. 下载源码 2. 项目中引入jar文件

  • 基于Java文件输入输出流实现文件上传下载功能

    本文为大家分享了Java实现文件上传下载功能的具体代码,供大家参考,具体内容如下 前端通过form表单的enctype属性,将数据传递方式修改为二进制"流"的形式,服务端(servlet)通过  getInputStream() 获取流信息, 运用java I/O 流的基础操作将流写入到一个服务端临时创建的文件temp中,然后再次利用文件基本操作,读取并截取临时文件内容,根据其中信息创建相应的文件,将读取出来的具体信息写入,下载时,根据提交的文件名称,找到服务器端相应的文件,然后根据输

  • java中struts2实现文件上传下载功能实例解析

    本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签 复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

  • SpringBoot实现文件上传下载功能小结

    最近做的一个项目涉及到文件上传与下载.前端上传采用百度webUploader插件.有关该插件的使用方法还在研究中,日后整理再记录.本文主要介绍SpringBoot后台对文件上传与下载的处理. 单文件上传 // 单文件上传 @RequestMapping(value = "/upload") @ResponseBody public String upload(@RequestParam("file") MultipartFile file) { try { if (

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

  • JavaEE中struts2实现文件上传下载功能实例解析

    本文实例为大家分享了struts2实现文件上传下载的具体实现代码,供大家参考,具体内容如下 一.文件上传 struts提交的文件组件上传, 前台: 1).提交方式POST 2).表单类型 multipart/form-data 3).input type=file 后台: Apache提供的FileUpload组件 核心类: FileItemFactory FileItem的工厂 ServletFileUpload servlet 中的文件上传的核心类 FileItem 封装了上传的表单文件项的

  • Struts2 控制文件上传下载功能实例代码

    之前介绍servlet3.0新特性的时候有提到过servlet API提供了一个part类来实现对文件的上传和保存,Struts其实是在其基础上做了进一步的封装,更加简单易用.至于文件下载,Struts贯彻AOP 思想,在下载之前提供对用户权限控制的API. 下面我们将详细介绍上传和下载的相关内容. 一.Struts文件上传机制 想要实现文件上传功能,页面的表单的method属性必须被指定为post,还有enctype属性必须为multipart/form-data,该值表示上传的内容将会以二进

  • Spring Boot + thymeleaf 实现文件上传下载功能

    最近同事问我有没有有关于技术的电子书,我打开电脑上的小书库,但是邮件发给他太大了,公司又禁止用文件夹共享,于是花半天时间写了个小的文件上传程序,部署在自己的Linux机器上. 提供功能: 1 .文件上传 2.文件列表展示以及下载 原有的上传那块很丑,写了点js代码优化了下,最后界面显示如下图: 先给出成果,下面就一步步演示怎么实现. 1.新建项目 首先当然是新建一个spring-boot工程,你可以选择在网站初始化一个项目或者使用IDE的Spring Initialier功能,都可以新建一个项目

  • vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)

    vue-cli+axios实现附件上传下载记录: 上传: 这里用formData格式传递参数:请求成功后后台返回上传文件的对应信息. 重点是下载: ############## downloadfile(res) { var blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'}); //applicati

随机推荐