首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'IFormFile‘不包含'GetFileName’的定义

'IFormFile‘不包含'GetFileName’的定义
EN

Stack Overflow用户
提问于 2021-05-16 07:42:06
回答 1查看 925关注 0票数 1

我试图编写一个操作来上传文件,当我试图调用GetFileName()方法时,我得到了以下错误:

代码语言:javascript
复制
'IFormFile' does not contain a definition for 'GetFileName' and no accessible extension method 'GetFileName' accepting a first argument of type 'IFormFile' could be found (are you missing a using directive or an assembly reference?)

我的控制器使用以下名称空间:

代码语言:javascript
复制
using Microsoft.Extensions.FileProviders;
using System.IO;
using Microsoft.AspNetCore.Http;

行动是:

代码语言:javascript
复制
 [HttpPost]  
        public async Task<IActionResult> UploadFile(IFormFile file)  
        {
            if (file == null || file.Length == 0)  
            return Content("file not selected");  
            var path = Path.Combine(  
                  Directory.GetCurrentDirectory(), "wwwroot", file.GetFileName());  
            using (var stream = new FileStream(path, FileMode.Create))  
            {  
                await file.CopyToAsync(stream);  
            }  
            return RedirectToAction("Files");  
        }  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 07:50:16

要使用IFormFile获取上传文件的文件名,我们可以使用file.FileName获取它。

试试这个:

代码语言:javascript
复制
[HttpPost]  
        public async Task<IActionResult> UploadFile(IFormFile file)  
        {
            if (file == null || file.Length == 0)  
            return Content("file not selected");  
            var path = Path.Combine(  
                  Directory.GetCurrentDirectory(), "wwwroot", file.FileName);  
            using (var stream = new FileStream(path, FileMode.Create))  
            {  
                await file.CopyToAsync(stream);  
            }  
            return RedirectToAction("Files");  
        }  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67554194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档