2017-10-05 75 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); 

}); 


}) 

我已經測試過的陣列,它工作正常,但我沒有在後端測試它