2017-02-04 6 views
0

私は、複数の画像をギャラリーにアップロードできるASP.NET MVCサイトで作業しています。ユーザーがイメージをアップロードしてデータベースに保存する前に、ユーザーはjQueryのドラッグアンドドロップを使用してイメージを並べ替えることができます。ユーザーはアップロードを送信できます。また、後で自分のギャラリーを編集して、その画像の順序を入れ直すこともできます。私は画像をデータベースに保存せず、ファイル名だけを保存します。私はこれをどのように最善に扱うかはわかりません。 POSTコントローラがList<HttpPostedFileBase>パラメータを受け取り、byte [] arrayに変換してイメージの順序を維持すると思っています。次に、イメージ名をコンマ区切りの文字列としてデータベースに保存しますか?これを処理する最も効率的な方法は何でしょうか?お使いのコントローラで複数の画像アップロードを処理する方法

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    <input type="file" name="files" value="" multiple="multiple"/> 
    <input type="submit" value="Upload"/> 
} 

:我々はサイドをドラッグを入れて、削除した場合、これはあなたのビューとして見るよう

+0

カンマを機密レベル変更区切っなぜあなたはとしてそれを保存しませんjsonの文字列は次のようになります: {"img1": "ImageName"、 "img2": "ImageName2" .. etc}これにより、特定の画像にアクセスして扱いやすくなります(削除、編集、追加) –

+0

実際に私が探しているのは、画像ファイルを処理してデータベースに保存する最善の方法です。時間の経過とともに画像の順序が変わることがあるという事実に基づいている。 – PixelPaul

+0

@Valkyriee、画像自体はDBに保存されず、ファイル名だけが保存されます。 – PixelPaul

答えて

1

よし

[HttpPost] 
public ActionResult Index(HttpPostedFileBase[] files) 
{ 
    try 
    { 
     foreach (HttpPostedFileBase file in files) 
     { 
      string name = System.IO.Path.GetFileName(file.FileName); 
      file.SaveAs(Server.MapPath("~/Images/" + name)); 

      string filename = "Images/" + name; 

      //Save the the filename to your database 
     } 
    } 
    catch 
    { 
     throw ex; 
    } 
    return View(); 
} 
+0

これを投稿していただきありがとうございます。私は基本的にこの部分を理解しています。私が得ようとしていたのは、画像の順序を把握するための最良の方法でした。たとえば、ユーザーは、pic1.jpg、pic2.jpg、pic3.jpg、pic4.jpgの4つの画像をアップロードします。次に、画像の順序をシャッフルします:pic4.jpg、pic1.jpg、pic 3.jpg、pic2.jpg。どのようにDBにイメージ名を書き込むので、DBから読み込んでビューに表示すると、イメージはユーザーが指定した正しい順序になりますか? – PixelPaul

+0

@PixelPaul確かに。 Stephen Mueckeが言ったのはベストプラクティスです。 – Valkyrie

関連する問題