2010-01-21 4 views
0

임 사용 스캇 hanselmans 파일 업로드 코드 :MVC - 외부 클래스에서 파일 업로드

public ActionResult UploadFiles() 

{ var에 R = 새 목록();

foreach (string file in Request.Files) 
    { 
    HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
    if (hpf.ContentLength == 0) 
     continue; 
    string savedFileName = Path.Combine(
     AppDomain.CurrentDomain.BaseDirectory, 
     Path.GetFileName(hpf.FileName)); 
    hpf.SaveAs(savedFileName); 

    r.Add(new ViewDataUploadFilesResult() 
     { Name = savedFileName, 
      Length = hpf.ContentLength }); 
    } 
    return View("UploadedFiles",r); 

은}

나는이 컨트롤러에 존재 싶지 않다. utils.cs 클래스에서 정적 메서드로 호출하십시오.

이 가능합니까?

답변

1

예, 외부 라이브러리는 액세스 할 수 없으므로 요청 개체를 함수에 전달해야합니다.

public void UploadFile(HttpRequestBase request) { ... } 
+0

자사의 라이브러리에 정적 메서드, 그것 오류로 제공 : 는 참조 변환을 통해 'System.Web.HttpPostedFileBase'에 유형 'System.Web.HttpPostedFile을'변환 할 수 없습니다, 권투 변환, 언 박싱 변환 , 랩핑 변환 또는 널 (NULL) 유형 변환 – raklos

+0

캐스트가있는 문제가 아니라 함수를 다시 작성하는 것이 아닙니다. HttpPostedFileBase hpf = (HttpPostedFileBase) request.Files [file]; –