2010-07-30 2 views
2

C#에서 PHP의 $ _FILES 변수와 동일한 기능은 무엇입니까? 아니면 적어도 같은 방식으로 파일에 액세스하는 것. 나는 변경할 수없고이 파일들을 얻는 방법을 알아야 할 업로드 양식을 가지고있다.

답변

9

예를 들어, Request.Files에서보세요 :

foreach (HttpPostedFile item in Request.Files) 
{ 
    var filename = item.FileName; 

    var fileBytes = new byte[item.ContentLength]; 
    item.InputStream.Read(fileBytes, 0, item.ContentLength); 

    // fileBytes now contains the content of the file 
    // filename contains the name of the file 
} 
+0

왜 이유에 노 코멘트와 함께 downvote ? – Rob

+1

'Stream.Read()'의 사용이 버그이기 때문에 Downvoted : 전체 내용 길이를 읽을 수 없습니다. 루프를 사용해야합니다. 또는 당신은'MemoryStream'을 인스턴스화하고'item.InputStream.CopyTo()'를 사용할 수 있습니다. – Timwi

+0

@Rob : 의미있는 바보 같은 말을 쓰려면 21 초를 약간 넘는 사람들이 필요할 수 있기 때문입니다. – Timwi

2

당신은 바로 당신의 핸들러에 전달 된 HttpRequest 개체가 있습니까?

for (int i = 0; i < request.Files.Count; i++) 
{ 
    var file = request.Files[i]; 
    // Do something with this file, for example: 
    file.SaveAs(Path.Combine(someDirectory, file.FileName)); 
} 
0

또한 (uploadify와 예를 들어) 때로는 사용할 수있는 HttpPostedFileBase 매개 변수 :

예 : 그냥 그 객체의 Files 프로퍼티에 액세스

public ActionResult UploadPicture(HttpPostedFileBase fileData){ 
    img = Image.FromStream(fileData.InputStream, true, true); 
} 
관련 문제