加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

file-upload – 使用不同的名称字段动态添加FileUpload

发布时间:2020-12-16 09:52:38 所属栏目:asp.Net 来源:网络整理
导读:我需要能够根据用户需求添加多个文件上传但是用户必须能够为上载分配名称以供以后使用. 正如您所看到的,我只是动态添加更多文件上传,但为这些上传指定名称似乎是我的问题. 有什么办法可以实现吗? 我的视图中的代码: @using Microsoft.Web.Helpers@model Mu
我需要能够根据用户需求添加多个文件上传但是用户必须能够为上载分配名称以供以后使用.
正如您所看到的,我只是动态添加更多文件上传,但为这些上传指定名称似乎是我的问题.
有什么办法可以实现吗?

我的视图中的代码:

@using Microsoft.Web.Helpers
@model MusicNews.Web.Models.ViewModel.ArticleCreateModel

@{
    ViewBag.Title = "Create";
}

@section content
{

        @using (Html.BeginForm("Create","Article",FormMethod.Post,new { enctype = "multipart/form-data" }))
        {
                ...

                @FileUpload.GetHtml("Files",2,true,false,"Add more")

                <p>
                    <input type="submit" value="Create" />
                </p>
        }
}

我的控制器中的代码如下所示:

[Authorize]
public ActionResult Create()
{
    ViewBag.ArticleTypes = new SelectList(ArticleTypes,"Type");
    return View();
}


[HttpPost]
[Authorize]
public ActionResult Create(ArticleCreateModel article)
{
    var files = Request.Files;

    if (ModelState.IsValid)
    {
        ...
    }
    return View(article);
}

解决方法

您可能必须自己创建其他上传.这可以使用jQuery完成,例如:

这是HTML:

<div id="uploads">
    <div id="uploadtemplate">
        <input type="file" name="upload" />
        <input type="text" name="FileName" />
    <div>

    <a href="#" id="addFile">Add file</a>
</div>

在加载时,我们将克隆变量中的“模板”以供以后使用.点击后,我们将克隆模板并将其添加到文档中.

$(function() {/
    $('#addFile').data('uploadtemplate',$('#uploadtemplate').attr('id','').clone());

    $('#addFile').click(function(e) {
        $(this).data('uploadtemplate').clone().insertBefore( $this) );

        e.preventDefault();
    });
});

你的模型将是:

public class Foo {
    public string[] FileName { get; set; } // will contain all file names given by the user
}

然后解析Request.Files并做你知道的魔术:-) Foo.FileName字段将包含用户为每个上传文件给出的文件名.你可以使用它作为Request.Files中的第一个文件将映射到Foo.FileName [0],依此类推.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读