반응형
ASP.Net MVC-저장하지 않고 HttpPostedFileBase에서 파일 읽기
파일 업로드 옵션을 사용하여 파일을 업로드하고 있습니다. 그리고이 파일을 View에서 Controller로 POST 방법으로 직접 보냅니다.
[HttpPost]
public ActionResult Page2(FormCollection objCollection)
{
HttpPostedFileBase file = Request.Files[0];
}
메모장 파일을 업로드하고 있다고 가정합니다. 어떻게이 파일을 읽고 해당 파일을 저장하지 않고 문자열 작성기에이 텍스트를 추가합니까? ...
SaveAs
이 파일 이후 에이 파일을 읽을 수 있다는 것을 알고 있습니다. 하지만 HttpPostedFileBase
저장하지 않고이 파일을 어떻게 읽 습니까?
이것은 httpPostedFileBase 클래스를 사용하여 수행 할 수 있습니다. 여기에 지정된대로 HttpInputStreamObject 를 반환 합니다 .
스트림을 바이트 배열로 변환 한 다음 파일 내용을 읽을 수 있습니다.
다음 링크를 참조하십시오
http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx ]
도움이 되었기를 바랍니다
업데이트 :
HTTP 호출에서 얻은 스트림은 읽기 전용 순차 (검색 불가능)이고 FileStream은 읽기 / 쓰기 검색 가능입니다. 먼저 HTTP 호출에서 전체 스트림을 바이트 배열로 읽어 들인 다음 해당 배열에서 FileStream을 만들어야합니다.
여기 에서 찍은
// Read bytes from http input stream
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.ContentLength);
string result = System.Text.Encoding.UTF8.GetString(binData);
대안은 StreamReader를 사용하는 것입니다.
public void FunctionName(HttpPostedFileBase file)
{
string result = new StreamReader(file.InputStream).ReadToEnd();
}
Thangamani Palanisamy 답변을 약간 변경하여 Binary 판독기를 폐기하고 그의 의견에서 입력 길이 문제를 수정합니다.
string result = string.Empty;
using (BinaryReader b = new BinaryReader(file.InputStream))
{
byte[] binData = b.ReadBytes(file.ContentLength);
result = System.Text.Encoding.UTF8.GetString(binData);
}
반응형
'programing tip' 카테고리의 다른 글
파이썬의 sorted ()는 어떤 알고리즘을 사용합니까? (0) | 2020.12.04 |
---|---|
Twitter Bootstrap Modal의 호출자 요소를 얻는 방법은 무엇입니까? (0) | 2020.12.04 |
Android 스튜디오는 기존 단위 테스트를 가져옵니다.“구문 정보를 찾을 수 없습니다.” (0) | 2020.12.04 |
포함, 존재 및 모든 항목의 성능 벤치마킹 (0) | 2020.12.04 |
Ubuntu에 Android SDK를 설치하는 방법은 무엇입니까? (0) | 2020.12.03 |