C#MVC上传文件而不覆盖以前的上传

时间:2017-10-05 14:46:49

标签: c# html asp.net-mvc file-upload

我有一个

<input type="file" name="uploadedFile">

型号:

public HttpPostedFileBase UploadedFile { get; set; }

上传工作正常,但在回发后的“UploadedFile”中,始终只有最后一次上传。 我需要上传多个文件,而不是一次性选择所有文件。 我知道你可以添加多个=“multiple”作为输入的属性,但是我需要一次选择所有文件。

尝试过清单,没有运气。

所以我需要的是:

  1. 点击上传按钮。文件提示打开,选择图像,单击打开,文件提示关闭。
  2. 重复步骤1选择另一个图像。还没有回发。
  3. 发送表格/做一个帖子。两个图像都应该在控制器中可用
  4. 目前我刚收到第二张图片。

    任何人都可以帮我这个吗?

    亲切的问候

2 个答案:

答案 0 :(得分:0)

从未测试过,但我认为这应该对你有用

<input type="file" id="texboxID" name="uploadedFile[]">
<a href="#" onclick="addFiles()">Add File</a>

    <script>
       function addFiles(){

           $("#myForm").append('<input type="file" name="uploadedFile[]" />')
       }
  </script>

然后上传应该是这样的:

function UploadFilesToServer(texboxID) {
    var fileUpload = $("#" + texboxID+"").get(0);
    var files = fileUpload.files;
    var FilesToServer = new FormData();
    for (var i = 0; i < files.length; i++) {
        FilesToServer.append(files[i].name, files[i]);
    }
    $.ajax({
        url: "url",
        type: "POST",
        contentType: false,
        processData: false,
        data: FilesToServer,
        // dataType: "json",
        success: function (result) {
            alert(result);
        },
        error: function (err) {
            alert(err.statusText);
        }
    });
}

希望我理解你的问题并以方便的方式回答你

答案 1 :(得分:0)

您可以将所选文件存储在FileList数组中,然后使用此数组上传文件

html:

<input type="file" id="fileUpload">

jQuery的:

$(document).ready(function(){

var fileArray=[];

$("#fileUpload").change(function(e){

var upFile = e.target.files[0];
fileArray.push(upFile);
console.log(fileArray);

});


})

我已经测试了它运行良好的数组,但我没有在后端测试它