关于C#后端:写“上传文件并保存到服务器”的程序

关于C#后端:写“上传文件并保存到服务器”的程序

获取前端文件

首先是要了解IFormFile,只要记住一个小概念——即:
IFormFile x = y 的编辑格式(y是指某个文件)可以将文件存储到x中,如果
运用到“接收前端传来的文件数据”上的话就可以写成以下格式:

//下面那个[HttpPost]和[FromForm]是写关于HTTP前端的特性,如果只是在本地的
计算机上运行的话可以不加
[HttpPost]
public a b([FromForm] IFormFile file)
{}
按这样的格式写完后就会获得前端传来的文件file;

储存

接下来就是如何储存了
储存的话有多种方法可以用,下面介绍一种我个人认为最实用的:文件流储存法
注意:是从上文的上传文件的方法里写的哦!
[HttpPost]
public a b([FromForm]IFormFile file)*(1)*
{
    /*先创建一个文件流文件到某个地址中
    地址中别忘了要包含文件名
    FileStream(地址,模式(打开还是创建加打开之类的),
    打开方式(读写模式还是其他之类的) );应用到下面的格式就是这样:*/
	FileStream fs= new FileStream(“xxxxxx”, 
	FileMode.xxxxx, FileAccess.xxxxx);*(2)*
	
    file.CopyTo(fs);/*这里的file是指前端传来的文件,也就是*(1)*
    				中的file参数,fs则是我们创建的文件流文件也就是*(2)*
    				而CopyTo的用法就如同它的字面意思,在这里就是指
    				把file文件复制粘贴到fs上*/
    				
    file.Close();//别忘了关闭文件!
}

简单的实例演示

    /// <summary>
    /// 上传文件并存储
    /// </summary>
    [HttpPost]
    public void Upload([FromForm] IFormFile file)
    {
            //存储到相应地址中
            //这个函数是用来获得当前运行程序的地址的(基本上都是在DEBUG中)
            var s = AppDomain.CurrentDomain.BaseDirectory;
            //file.FileName就是前端给的文件的名字了,然后Path.Combine(a,b)就是把a和b这两个地址相结合
            FileStream fs= new FileStream(Path.Combine(s, file.FileName), FileMode.OpenOrCreate, FileAccess.ReadWrite);
            file.CopyTo(fs);
            fs.Close();
    }
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值