c# - MVC ASP.NET CORE,上传文件有时上传的文件已损坏/大小为 0 字节

标签 c# upload asp.net-core-mvc

所以我尝试在我的 mvc 核心中上传文件并且它有效,但是,有时正在上传的文件可能已损坏或大小为 0 字节。有没有人经历过这样的事情? 上传的初始文件大小一点也不大。

谢谢。

public IActionResult UploadCertificateFile(IFormFile UploadCertificate)
        {
            var parsedContentDisposition =
                   ContentDispositionHeaderValue.Parse(UploadCertificate.ContentDisposition);
            var filename = Path.Combine(_hostingEnvironment.WebRootPath,
                "Uploads", parsedContentDisposition.FileName.Trim('"'));
            using (var stream = System.IO.File.OpenWrite(filename))
            {
                UploadCertificate.CopyToAsync(stream);
            }
            return RedirectToAction("Index");
        }

最佳答案

我认为这里的问题是使用 CopyToAsync 而不是调用 await,我认为你应该使你的方法声明异步任务并在 UploadCertificate.CopyToAsync 行中调用 await,或者只使用 CopyTo(但 I/O 更好地实现它异步)

当你的线程被杀死时,文件可能没有被完全复制,所以这就是你的文件被破坏的原因。

关于c# - MVC ASP.NET CORE,上传文件有时上传的文件已损坏/大小为 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48457190/

相关文章:

c# - 使用自定义货币代码格式化货币(ASP.NET Core MVC)

c# - 我在 C# Web API 项目中上传哪些文件?

C# 算法 - 找到最少数量的必要对象

c# - 使用 Xunit 运行 Specflow 但出现错误 nunit.framework

perl - Youtube API : Resume Upload *User Authentication Required*

php - 使用 API PUT 请求上传文件

c# - 绑定(bind)属性变为空

c# - 字符串填充不占用相同的字符间距

file - Express 和 Multer 上传问题 - req.files 始终为空

asp.net-core-mvc - 具有 Entity Framework 的 AspNet Core MVC + 类库(.Net 标准)