C# System.IO.File.Create文件无法下载?在MVC5ASP.net中

C# System.IO.File.Create文件无法下载?在MVC5ASP.net中,c#,asp.net,asp.net-mvc-5,file-access,system.io.file,C#,Asp.net,Asp.net Mvc 5,File Access,System.io.file,通过System.IO.file.Create创建的文件不能像通过HttpPostedFileBase.SaveAs创建的文件那样下载 我的代码: [HttpPost] [ValidateAntiForgeryToken] public ActionResult SaveasMP4(HttpPostedFileBase file) { try { if (file != null && fil

通过
System.IO.file.Create创建的文件不能像通过
HttpPostedFileBase.SaveAs创建的文件那样下载

我的代码:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult SaveasMP4(HttpPostedFileBase file)
    {
        try
        {
            if (file != null && file.ContentLength > 0)
            {
                string extension = Path.GetExtension(file.FileName);
                var path = Path.Combine(Server.MapPath("~/Data/"), file.FileName);
                file.SaveAs(path);
                if (!extension.Equals(".mp4"))
                {
                    var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
                    string tempFileName = path.Substring(0, path.LastIndexOf('.')) + ".mp4";
                    using (FileStream fileStream = System.IO.File.Create(Path.Combine(Server.MapPath("~/Data/"), tempFileName)))
                    {
                        ffMpeg.ConvertMedia(path, fileStream, Format.mp4);
                    }
                    if (System.IO.File.Exists(path))
                    {
                        System.IO.File.Delete(path);
                    }
                }
            }
        }
        catch (Exception e)
        {
            ModelState.AddModelError("", e.Message);
            return View();
        }
        return RedirectToAction("Index");
    }
如果文件是mp4,可以使用file.SaveAs(路径)下载。但是,如果文件是其他格式,它将使用NReco.VideoConverter成功地转换为mp4,并且无法下载,因为它是通过System.IO.file.create(tempFileName)创建的。我可以使用ftp下载。
文件访问权限是否存在问题?
如果是,我应该在文件访问权限中执行什么操作?

实际上,问题与属于服务器的文件权限策略有关。 如果文件是由内部进程(如FFMpeg DLL(C++库))生成的,则服务器会阻止IIS用户下载该文件。
因此,我与服务器团队联系,他们授予IIS用户下载由FFMpeg DLL生成的文件的权限。

什么是
tempFileName
files
?现在发生了什么?有例外吗?为什么不使用
fileStream
?我已经使用了fileStream,但无法工作。当我尝试下载它时,显示没有文件。实际上,我可以通过ftp下载服务中的文件。您还没有向我们展示将文件结果流式传输给用户的mvc操作。你能发布代码吗?实际抛出的异常是什么?为无效路径错误添加权限没有意义。异常消息会有所帮助,但完整的异常文本更好,因为它包括调用堆栈和任何内部异常(即调用e.ToString()