使用dot net core在mvc中显示已保存的文件

时间:2017-05-06 19:57:11

标签: asp.net-mvc .net-core iformfile

我尝试使用IFormFile上传多个文件..这是我的HTML

<input type="file" asp-for="lstAttachments" accept="application/pdf,application" multiple/>

其中lstAttachmentsIFormFile

的集合
public IEnumerable<IFormFile> lstAttachments { get; set; }

我将文件保存到某个文件夹,然后将文件夹路径保存到数据库表。 这工作得非常好。

var filePath = "" ;
Guid guid;
List<userattachmentsdetail> attachmentsToInsert = new List<userattachmentsdetail>();
userattachmentsdetail newAttachment;
foreach (var file in userDetail.lstAttachments)
{
         guid = Guid.NewGuid();
         filePath = hostingEnv.WebRootPath + $@"\uploadedFiles" + $@"\{guid}_{file.FileName}";

        using (FileStream fs = System.IO.File.Create(filePath))
        {
            file.CopyTo(fs);
            fs.Flush();
        }

        newAttachment = new userattachmentsdetail();

        newAttachment.FileName = file.FileName;
        newAttachment.FilePath = filePath;
        attachmentsToInsert.Add(newAttachment);

   }

在编辑模式下,我从该表中获取名称和路径并尝试加载文件

这是我从表

获取文件路径数据的查询
Select FileName, FilePath from userattachmentsdetail uad

这里我将数据存储到列表

List<userattachmentsdetail> lstFiles = grid.Read<UserFiles>().ToList();

lstFiles包含所有文件但现在我不知道如何将此数据转换/复制到IFormFile集合(lstAttachments)。

修改文件内容可以是pdf,text或docx。

1 个答案:

答案 0 :(得分:0)

你没有。

<强> IFormFile

  

表示使用HttpRequest发送的文件。

它只能表示一个入站文件。

为了您的编辑&#39;功能,只需要覆盖您保存的文件(如果最终用户更改了该文件)。