> 백엔드 개발 > C++ > Fileresult를 사용하여 ASP.NET MVC에서 알 수없는 유형의 파일 다운로드를 처리하는 방법?

Fileresult를 사용하여 ASP.NET MVC에서 알 수없는 유형의 파일 다운로드를 처리하는 방법?

Barbara Streisand
풀어 주다: 2025-01-27 06:51:10
원래의
770명이 탐색했습니다.

How to Handle File Downloads of Unknown Types in ASP.NET MVC using FileResult?

ASP.NET MVC에서 FileResult를 사용하여 알 수 없는 유형의 파일 다운로드

ASP.NET MVC에서 파일 다운로드를 활성화하는 경우 일반적으로 선호되는 방법으로 FileResult를 사용하는 것이 좋습니다. 그러나 대부분의 예는 특정 콘텐츠 유형(예: "image/jpeg")이 포함된 이미지 파일을 다운로드하는 데 중점을 둡니다.

파일 형식을 알 수 없고 사용자가 다양한 파일 형식을 다운로드하도록 허용하려는 경우 문제가 발생합니다. 다운로드한 파일 이름이 파일 경로의 밑줄과 연결될 수 있으며 이는 이상적이지 않을 수 있습니다. 또한 일부 사람들은 "BinaryContentResult"와 같은 사용자 정의 클래스를 사용하는 대신 FileResult를 반환하는 것을 선호합니다.

권장 방법

이러한 문제를 해결하고 올바른 다운로드 메커니즘을 구현하려면 다음 단계를 따르십시오.

  1. 일반 옥텟 스트림 MIME 유형 사용:

    알 수 없는 유형의 파일의 경우 일반 "Application/Octet-Stream" MIME 유형을 지정하여 파일이 모든 형식일 수 있음을 나타냅니다.

  2. 다운로드 작업 정의:

    MVC 컨트롤러에서 파일 다운로드를 처리하는 작업 메서드를 만듭니다. 예를 들면 다음과 같습니다.

    <code class="language-csharp">public FileResult Download(string filePath, string fileName)
    {
        // 从指定位置或流获取文件字节
        byte[] fileBytes = GetFileBytes(filePath);
    
        // 使用指定的字节、MIME类型和文件名返回FileResult
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
    }</code>
    로그인 후 복사
  3. 파일 바이트 검색:

    제공된 파일 경로 또는 기타 수단을 기반으로 파일 바이트를 검색하는 메서드를 구현합니다. 예를 들면 다음과 같습니다.

    <code class="language-csharp">private byte[] GetFileBytes(string filePath)
    {
        return System.IO.File.ReadAllBytes(filePath);
    }</code>
    로그인 후 복사

샘플 코드:

다음은 접근 방식을 보여주는 샘플 코드 조각입니다.

<code class="language-csharp">public ActionResult Download()
{
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext");
    string fileName = "myfile.ext";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}</code>
로그인 후 복사

이 방법을 사용하면 ASP.NET MVC 애플리케이션에서 원하는 파일 이름을 유지하고 적절한 MIME 유형을 사용하면서 모든 유형의 파일을 다운로드할 수 있습니다.

위 내용은 Fileresult를 사용하여 ASP.NET MVC에서 알 수없는 유형의 파일 다운로드를 처리하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿