【问题标题】:Own FormFile model自己的 FormFile 模型
【发布时间】:2021-02-17 20:43:41
【问题描述】:

目前我正在解决加载文件的问题 - 我使用了 IFormFile,但我现在需要为每个文件添加一个变量(布尔值) - 以了解用户是否将此文件标记为主文件或附加文件。

我已经尝试过创建自己的课程:

public class MyFormFile :FormFile
    {
        public MyFormFile(Stream baseStream, long baseStreamOffset, long length, string name, string fileName) : base(baseStream, baseStreamOffset, length, name, fileName)
        {
            MainFile = true;
        }

        public bool MainFile { get;set;}
    }

但是当我使用它时,模型中没有文件。 (当我在模型中使用 List<IFormFile> 而不是 List<MyFormFile> 时,它可以工作。

目前浏览器发送的文件如下:

文件 {mainFile: true, name: "Test_Result.pdf", lastModified: 1597833278041,最后修改日期:2020 年 8 月 19 日星期三 12:34:38 GMT+0200 (中欧夏令时间),webkitRelativePath: "", ...}

我错过了什么?

谢谢。

【问题讨论】:

    标签: file asp.net-core iformfile


    【解决方案1】:

    您可以尝试使用这样的模型:

     public class FileInputModel
        {
            public FileInputModel(){
                MainFile = true;
            }
            public IFormFile File { get; set; }
            public bool MainFile { get; set; }
        }
    

    您可以使用ajax将FileInputModel结构的数据发布到控制器,这里有一个演示:

    测试控制器:

    public IActionResult TestFiles(List<FileInputModel> files) {
                return View();
            }
    

    查看:

    <form method="post">
        <input id="Files" type="file" multiple/>
        <input type="button" value="submit" onclick="Submit()"/>
    </form>
    <script>
        function Submit() {
            var pdata = new FormData();
            var files = $("#Files").get(0).files;
            for (var i = 0; i < files.length;i++) {
                pdata.append('files[' + i + '].File', files[i]);
            }
            $.ajax({
                url: "TestFiles",
                type: "POST",
                data: pdata,
                processData: false,
                contentType: false,
                success: function (data) {
                }
            });
    
        }
    </script>
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多