2011-12-12 32 views
2

後我有這個HTMLMVC ASP.net文件上傳:filepath是空提交

<% using (Html.BeginForm("Upload", "BulkUpload", FormMethod.Post, new { enctype = "multipart/form-data" })) { %> 
    <%: Html.TextBoxFor(model => model.UploadFile, new { @type = "file" }) %> 
    <%: Html.ValidationMessageFor(model => model.UploadFile, "*") %> 
    <%= Html.Button("submit", "Upload", null) %> 
<% } %> 

型號

public class BulkUploadVM 
{ 
    [DisplayName("File to import")] 
    public HttpPostedFileBase UploadFile { get; set; } 
} 

控制器

[HttpPost] 
public ActionResult Upload(BulkUploadVM model) 
{ 
    if (ModelState.IsValid) 
    { 
     var stream = model.UploadFile.InputStream; 

     // Process stream ... 
    } 

    return View("Index", model); 
} 

上傳文件已正確發佈到控制器,但是當Controller使用模型(具有有效的UploadFile)返回視圖時,頁面上的文件路徑爲空?
這是默認行爲嗎?或者我錯過了什麼?

+0

你認爲文件路徑是什麼? – Oded

+0

使用「瀏覽」按鈕輸入/選擇相同的文件路徑。 –

+0

此值不適用於服務器,因此無法在轉貼中設置。 – Oded

回答

0

爲,這是可以設置從因爲安全原因,文件上傳輸入元素的值。

RFC 1867this link
文件輸入類型創建,通過它用戶可以從他們的本地計算機或網絡上傳文件的字段。 VALUE屬性指定了初始文件的名稱,但爲了安全起見,它通常被瀏覽器忽略。

0
<% using (Html.BeginForm("Upload", "Home", new { BulkUploadVM = Model }, 
       FormMethod.Post, new { enctype = "multipart/form-data" })) { %> 

    <%= Html.TextBoxFor(model => model.UploadFile, new { @type = "file" }) %> 
    <%= Html.ValidationMessageFor(model => model.UploadFile, "*") %> 

    <input type="submit" value="Finish" /> 

    <% } %> 

設置routeValues對象已經由俄德描述

new { BulkUploadVM = Model }