【问题标题】:MVC ASP.NET CORE, Uploading files sometime the file being uploaded become corrupted / size 0 byteMVC ASP.NET CORE,有时上传文件正在上传的文件损坏/大小为 0 字节
【发布时间】:2018-07-05 13:07:57
【问题描述】:

所以我试图在我的 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");
        }

【问题讨论】:

  • 可能显示代码?我怎么知道出了什么问题?
  • @kriss 注意。已编辑。谢谢!
  • hmm,你使用 CopyToAsync 而不是在那里调用 await,我认为你应该在 UploadCertificate.CopyToAsync 行中进行 async Task 并调用 await,或者只使用 CopyTo(但更适合 I/O使其异步)

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


【解决方案1】:

我认为这里的问题是使用 CopyToAsync 而不是调用 await,我认为您应该使方法声明 async Task 并在 UploadCertificate.CopyToAsync 行中调用 await,或者只使用 CopyTo(但对于 I/O 来说更好)异步)

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

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 2013-10-03
    • 2012-06-20
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2020-09-27
    • 1970-01-01
    相关资源
    最近更新 更多