Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串错误消息返回给用户,而不是控制器中的BadRequest_C#_Asp.net Core_Entity Framework Core_Asp.net Core Webapi_Asp.net Core 3.1 - Fatal编程技术网

C# 将字符串错误消息返回给用户,而不是控制器中的BadRequest

C# 将字符串错误消息返回给用户,而不是控制器中的BadRequest,c#,asp.net-core,entity-framework-core,asp.net-core-webapi,asp.net-core-3.1,C#,Asp.net Core,Entity Framework Core,Asp.net Core Webapi,Asp.net Core 3.1,我有下面的代码,您可以在下面看到 如果用户上传的文件不是某个文件扩展名,或者文件太大,那么我希望控制器向用户返回一条错误消息 现在,我只是返回一个一般的错误请求 是否有办法让控制器拒绝上传,同时在浏览器中向用户显示相应的错误消息 [HttpPost] public async Task<IActionResult> UploadUserFiles([FromForm] IFormFile gamerFile) { int maxFileSize

我有下面的代码,您可以在下面看到

如果用户上传的文件不是某个文件扩展名,或者文件太大,那么我希望控制器向用户返回一条错误消息

现在,我只是返回一个一般的错误请求

是否有办法让控制器拒绝上传,同时在浏览器中向用户显示相应的错误消息

    [HttpPost]
    public async Task<IActionResult> UploadUserFiles([FromForm] IFormFile gamerFile)
    {
        int maxFileSize = 52428800; //50MB
        var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".pdf", ".odt", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".rtf", ".txt" };

        if(gamerFile.Length > maxFileSize)
        {
            return BadRequest();
            // return an error to user saying max file size exceeded
        }

        if(!allowedExtensions.Contains(Path.GetExtension(gamerFile.FileName)))
        {
            return BadRequest();
            // return an error to user saying the file was not a valid type
        }

        var filePath = Path.Combine(@"R:\gamer\screens\uploadedMediaFiles", gamerFile.FileName);

        using (var fileStream = new FileStream(filePath, FileMode.Create))
        {
            await gamerFile.CopyToAsync(fileStream);
        }
        return Ok();

    }
[HttpPost]
公共异步任务上载用户文件([FromForm]IFormFile gamerFile)
{
int maxFileSize=52428800;//50MB
var allowedExtensions=new[]{.jpg“,.jpeg“,.png“,.gif“,.bmp“,.pdf“,.odt“,.doc“,.xls“,.xlsx“,.ppt“,.pptx“,.rtf“,.txt”};
如果(gamerFile.Length>maxFileSize)
{
返回请求();
//向用户返回一个错误,说明超出了最大文件大小
}
如果(!allowedExtensions.Contains(Path.GetExtension(gamerFile.FileName)))
{
返回请求();
//向用户返回一个错误,说明文件不是有效类型
}
var filePath=Path.Combine(@“R:\gamer\screens\uploademdediafiles”,gamerFile.FileName);
使用(var fileStream=newfilestream(filePath,FileMode.Create))
{
等待gamerFile.CopyToAsync(文件流);
}
返回Ok();
}

您可以将字符串作为参数添加到
BadRequest
方法。

您是否意识到可以
返回BadRequest(“请求失败的原因”)
?看这里的医生哦,哇,我不知道。所以你可以只做returnbadRequest(“你的文件太大了”)?用户会看到吗?用户会看到响应内容“您的文件太大了”。。。状态代码为400
return BadRequest("Message")