2014-01-08 185 views
3

基本上我現在擁有的是一個ASP.NET MVC項目,數據庫首先使用字母數字輸入表,但我認爲這將是非常漂亮的文件上傳,所以我可以插入一個圖片到數據庫中,所以我在SQL服務器中創建了一個ID字段和一個帶有數據類型圖像的圖像字段的表。文件上傳ASP.NET MVC

當我添加這個模型,並創建我的控制器和基於該模型的視圖它不創建標籤或編輯器的這個領域,我用DataAnnotations給它的DataType上傳,但我找不到方法實際上傳文件我試過這個工作正常輸入,但沒有任何顯示有一個@ HTML.FileUploadFor(model => model.Vehicle)或沿着這些線的東西。

這是我已經試過

<div class="editor-label"> 
    @Html.LabelFor(model => model.Vehicle) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.Vehicle) 
    @Html.ValidationMessageFor(model => model.Vehicle) 
</div> 

這是我的模型

public partial class VehicleImage 
{ 
    public int Vehicle_ID { get; set; } 
    [DataType(DataType.Upload)] 
    public byte[] Vehicle { get; set; } 
} 

回答

3

有許多方法來此。

我通常使用一個名爲Uploadify的jquery插件。

看一看這個帖子 - https://stackoverflow.com/a/17520062/1581026

另一種方法就是通過添加在你看來下面的表格中:

<input type="file" name="Picture" /> 

你的表單元素需要如下所示:

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

然後在您的模型上傳遞給POST動作,您可以添加一個屬性:

public HttpPostedFileBase Picture {get; set; } 

或者你也可以直接將其添加爲參數,在您的文章操作:

[HttpPost] 
Public ActionResult SomeAction(HttpPostedFileBase Picture, .....) 
+0

乾杯,圖片在這種情況下是我上傳到數據庫字段的名稱? – Crouch

+0

不,「圖片」將是您模型中的一個屬性。你不能直接將它保存到你的數據庫中。您首先必須將其更改爲一個字節數組。 –

+0

對不起,我忘了你還需要添加encype = multipart/form-data在Ajay Punekar的帖子中 - http://stackoverflow.com/a/20996333/1581026。我也在我的帖子中添加了它。 –

3

沒有一個標準的控制或幫手文件,據我所知。 但是,這是一個很好的教程來實現你想要的。

http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/

此外,如果你真的想要這個功能,你可以自己寫一個HTML幫手。

  1. 通過編寫extensionmethod到的HtmlHelper對象
  2. 通過在您看來例如宣佈一個代碼塊:

@helper MyHelper(string id){ <input type="file" id="@id" /> }

+0

乾杯我會研究這一點 – Crouch

0

嘗試這樣的事:

創建這種類型的查看

using (Html.BeginForm("FileUpload", "FileUpload", 
       FormMethod.Post, new { enctype = "multipart/form-data" })) 
    { 
     <input name="uploadFile" type="file" /> 
     <input type="submit" value="Upload File" /> 
    } 

這裏是控制器方法

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult FileUpload(HttpPostedFileBase uploadFile) 
{ 
} 

請參考以下鏈接:http://www.codeproject.com/Articles/38970/Implementing-HTTP-File-Upload-with-ASP-NET-MVC