2017-10-05 44 views
2

我有一个C#MVC上传文件,而不会覆盖先前上传

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

型号:

public HttpPostedFileBase UploadedFile { get; set; } 

上传回发后工作正常,但在我的“UploadedFile的”,总有刚刚过去的上载。 我需要上传多个文件而不一次全选。 我知道有多个=“多个”,您可以添加为输入的属性,但我需要一次选择所有文件。

试过一个列表,没有运气。

所以我需要的是:

  1. 点击上传按钮。文件提示符打开,选择一个图像,单击打开,文件提示关闭。
  2. 重复步骤1选择另一个图像。还没有发生回传。
  3. 发送表格/发布信息。这两个图像应在控制器中可用

目前我只收到第二张图片。

任何人都可以帮助我吗?

亲切的问候

+0

你能详细说明一个更完整的例子吗?我特别感兴趣的是''在下一步中上传另一张图片''。是否有多个POST请求连续执行多个控制器操作?如果是这样,那么听起来像你需要保留来自第一个POST服务器端的数据,而不是依赖它在第二个POST中。 (毕竟,通过网络不止一次地传输相同的文件无论如何都是浪费的。) – David

回答

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); 
     } 
    }); 
} 

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

0

你可以将选定的文件存储在文件清单阵列,然后使用这个数组上传的文件

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); 

}); 


}) 

我已经测试过的阵列,它工作正常,但我没有在后端测试它