2012-10-27 76 views
1

將許多圖像a上傳並存儲到數據庫並一次創建縮略圖如何一次上傳多個圖像(通過打開對話框和shift/ctrl)並將它們存儲到sql server數據庫(創建一條記錄每個圖像),然後用ASP.Net MVC創建縮略圖?使用ASP.Net MVC

視圖和控制器應該如何?非常感謝。

回答

1

從你的問題看來,你正在走過你的頭。您一次詢問有關ASP.NET MVC,圖像處理算法,SQL服務器和一般網頁設計的問題。

爲了避免進入你的問題的實質,我將簡單地解釋你需要做的事情。你將需要自己做這項研究,因爲沒有S.O.的數量。問題和答案會給你適當的技術知識。

您首先需要有一個可以存儲圖像的數據庫。這裏有一個小教程http://www.codeproject.com/Articles/354639/Storing-and-Retrieving-Images-from-SQL-Server-Usin

這可能需要你一段時間。但是一旦你完成了,你將需要進入你的項目並開始基本架構的工作。你的物品會是什麼樣子?你的程序的流程是什麼?你需要問的一個大問題是你將如何連接到你的數據庫?答案可能應該是實體框架。您需要考慮使用EF將數據從服務器端代碼傳輸到您的數據庫。

就您的視圖和您的控制器而言,控制器是所有計算和處理都發生在您的應用程序中的地方,視圖幾乎就像顯示計算數據的模板。你需要計算出你想要傳遞的數據。一般來說,考慮到您提供的少量信息,視圖看起來幾乎與您希望的視圖類似,控制器必須從視圖中傳遞圖像,將其轉換爲縮略圖,然後傳遞它(與EF)回到你的數據庫。

很多工作,呃? ;)

+0

感謝您的幫助我的朋友。但是我已經使用代碼先建立了我的數據庫,而且我做了很多工作。其實我只想知道如何一次上傳多張圖片並將它們逐一存儲。我需要代碼示例;-) – Doctor

+0

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

+0

http://stackoverflow.com/questions/10956721/asp-net- mvc-3-razor-passing-data-from-view-to-controller - http://stackoverflow.com/questions/10402094/uploading-image-in-asp-net-mvc-3 - http:// www。 hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx –

0

你必須創建2類:MainClass和MainClassViewModel

主要類有圖像的屬性與標記名,如:

public class MainClass 
{ 
[Key] 
public int MainClassId {get; set;} 
[DisplayName("Image 1")] 
public Bytes[] Image1 {get;set;} 
} 

然後你需要一個模型視圖(這是一個類的方式類似原來只是將不得不改變的「字節[]」到「HttpPostedFileBase」類型:

public class MainClassModelView 
{ 
[Key] 
public int MainClassId {get; set;} 
[DisplayName("Image 1")] 
public HttpPostedFileBase Image1 {get;set;} 
} 

,並在你看來,你必須使用這個模型視圖,在第1行:

@model ApplicationName.Models.MainClassModelView 

然後,你必須使用的視圖:

@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-horizontal"> 
    <h4>MainClassView</h4> 
    <hr /> 
     @Html.Images(m => m.Image1) 
     @Html.ValidationMessageFor(model => model.Image1, "", new { @class = "text-danger" }) 
    </div> 
</div> 

    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      <input type="submit" value="Create" class="btn btn-default" /> 
     </div> 
    </div> 
</div> 
}