2009-11-04 6 views
2

저는 특히 MVC 프레임 워크 (이 경우 v2 미리보기 2)를 사용하는 동안 MVVM 패턴을 크게 좋아합니다.ASP.NET MVC, MVVM 및 파일 업로드

하지만 파일 업로드를 할 때 어떻게 사용하는지 알고 싶습니다. 당신은 표준 구성 요소 (System.IO.Path)를 사용하는 경우

public class MyViewModel 
{ 
    public WhatTypeShouldThisBe MyFileUpload { get; set; } 
} 

답변

3

내가 작성한 jQuery 다중 파일 업 로더를 사용하는 production asp.net mvc 사이트가 있습니다. This answer에는 대부분의 코드가 포함되어 있으므로 MVC에서 업로드를 시작해야합니다. 질문은 실제로 업로드 된 파일을 Stream에 저장하는 것에 대해 묻습니다. byte[]을 사용하지만, 내 코드가 두 시나리오에 모두 적용될 수있는 방법을 확인할 수 있습니다.

1

보통 HttpFileCollection은 충분하다.

당신이 한 번에 여러 파일을 업로드 할 수 있습니다 즉 HttpFileCollectionHttpPostedFile의 모음이라고 적어 둡니다. 나는 [바이트 위치 생각

+1

MVVM 패턴을 손상시키지 않습니다. 모든 것을 한 곳에서가집니다. 모델이 http 컨텍스트 자체를 검사 할 수 있다고 가정합니다. 그러나 그것은 모두 잘못된 것입니다. – Kieron

1

내가이 같은 STH 할 것, 내 업로드 행동, 예를 들어, 업로드 된 파일을 저장하기에 충분하다 :

 foreach (string file in Request.Files) 
     { 
      HttpPostedFileBase hpf = Request.Files(file) as HttpPostedFileBase; 
      if (hpf.ContentLength == 0) 
      { 
       continue; 
      } 


      //This would be the part to get the data and save it to the view 
      byte[] origImageData = new byte[(int)hpf.ContentLength - 1 + 1]; 
      hpf.InputStream.Read(origImageData, 0, (int)hpf.ContentLength); 


     } 

가 어떤 방법 도움이되기를 바랍니다.