我正在使用ASP.net core 5.0,但似乎RequestSizeLimit
无法正常工作。
我有以下控制器
[HttpPost("addfile")]
[RequestSizeLimit(5_242_880)] // 5MB
public IActionResult AddFile([FromBody] IFormFile file)
现在,当我要测试所述控制器时,我将创建一个IFormFile
类似这样的代码:
public static Mock<IFormFile> TestFile(string filename, string content)
{
var fileMock = new Mock<IFormFile>();
var ms = new MemoryStream();
var writer = new StreamWriter(ms);
writer.Write(content);
writer.Flush();
ms.Position = 0;
fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
fileMock.Setup(_ => _.FileName).Returns(filename);
fileMock.Setup(_ => _.Length).Returns(ms.Length);
return fileMock;
}
在测试中,我现在添加50MB的内容,如下所示:
var bigContent = RandomString(50 * 1024 * 1024);
var testFile = TestFile("calendar.ical", bigContent);
...
var result = controller.AddFile(testFile.Object);
信息:RandomString
返回给定长度的字符串(不是最优化的方式):
public static string RandomString(int length)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < length; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
return builder.ToString();
}
我希望状态代码不是200-确定。难道我做错了什么?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句