웹 페이지에 업로드하기 전에 파일의 여러 확장자를 확인하는 방법

지텐 드라 프라 카시

pdf 확장자 만 허용하는 웹 페이지에 파일을 업로드하려고합니다. 하지만 파일 (ieajpeg)의 확장자를 a.jpeg.pdf와 같은 .pdf로 변경하면 웹 페이지에 업로드 할 수 있습니다. 그래서 웹 페이지에 업로드하기 전에 단일 파일에서 여러 확장자를 확인하고 싶습니다.

아래는 내 코딩입니다.

if (file != null && file.ContentLength > 0)
                {
                    int MaxContentLength = 1024 * 1024 * 4;
                    string[] AllowedFileExtensions = new string[] { ".pdf" };
                    if (!AllowedFileExtensions.Contains(file.FileName.Substring(file.FileName.LastIndexOf('.'))))
                    {
                        ModelState.AddModelError("File", "(SERVER)Please select file of type: " + string.Join(", ", AllowedFileExtensions));
                        return RedirectToAction("AddNewRule", "CreateRule");
                    }
                    else if (file.ContentLength > MaxContentLength)
                    {
                        ModelState.AddModelError("File", "(SERVER)Your file is too large, maximum allowed size is: " + MaxContentLength + " MB");
                        return RedirectToAction("AddNewRule","CreateRule");
                    }
                    var fileName = Path.GetFileName(file.FileName);
                    var filetype = Path.GetExtension(fileName);
                    var mimeType = MimeMapping.GetMimeMapping(filetype);
                    if (mimeType == "application/pdf")
                    {
                        var path = Path.Combine(Server.MapPath("~/Files"), fileName);
                        file.SaveAs(path);
                        rule_add.File_Name = fileName;
                        rule_add.File_Path = path;
                        rule_add.File_Page = addrule.pagenum;
                    }
                    else
                    {
                        ModelState.AddModelError("File", "(SERVER)This file doesn't has valid content ");
                        return RedirectToAction("AddNewRule", "CreateRule");
                    }
                }

도와 주셔서 감사합니다.

지텐 드라 프라 카시
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace CopaRule.Models
{
    public class MimeType
    {`enter code here`
        private static readonly byte[] BMP = { 66, 77 };
        private static readonly byte[] DOC = { 208, 207, 17, 224, 161, 177, 26, 225 };
        private static readonly byte[] EXE_DLL = { 77, 90 };
        private static readonly byte[] GIF = { 71, 73, 70, 56 };
        private static readonly byte[] ICO = { 0, 0, 1, 0 };
        private static readonly byte[] JPG = { 255, 216, 255 };
        private static readonly byte[] MP3 = { 255, 251, 48 };
        private static readonly byte[] OGG = { 79, 103, 103, 83, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 };
        private static readonly byte[] PDF = { 37, 80, 68, 70, 45, 49, 46 };
        private static readonly byte[] PNG = { 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82 };
        private static readonly byte[] RAR = { 82, 97, 114, 33, 26, 7, 0 };
        private static readonly byte[] SWF = { 70, 87, 83 };
        private static readonly byte[] TIFF = { 73, 73, 42, 0 };
        private static readonly byte[] TORRENT = { 100, 56, 58, 97, 110, 110, 111, 117, 110, 99, 101 };
        private static readonly byte[] TTF = { 0, 1, 0, 0, 0 };
        private static readonly byte[] WAV_AVI = { 82, 73, 70, 70 };
        private static readonly byte[] WMV_WMA = { 48, 38, 178, 117, 142, 102, 207, 17, 166, 217, 0, 170, 0, 98, 206, 108 };
        private static readonly byte[] ZIP_DOCX = { 80, 75, 3, 4 };

        public static string GetMimeType(byte[] file, string fileName)
        {

            string mime = "application/octet-stream"; //DEFAULT UNKNOWN MIME TYPE

            //Ensure that the filename isn't empty or null
            if (string.IsNullOrWhiteSpace(fileName))
            {
                return mime;
            }

            //Get the file extension
            string extension = Path.GetExtension(fileName) == null
                                   ? string.Empty
                                   : Path.GetExtension(fileName).ToUpper();

            //Get the MIME Type
            if (file.Take(2).SequenceEqual(BMP))
            {
                mime = "image/bmp";
            }
            else if (file.Take(8).SequenceEqual(DOC))
            {
                mime = "application/msword";
            }
            else if (file.Take(2).SequenceEqual(EXE_DLL))
            {
                mime = "application/x-msdownload"; //both use same mime type
            }
            else if (file.Take(4).SequenceEqual(GIF))
            {
                mime = "image/gif";
            }
            else if (file.Take(4).SequenceEqual(ICO))
            {
                mime = "image/x-icon";
            }
            else if (file.Take(3).SequenceEqual(JPG))
            {
                mime = "image/jpeg";
            }
            else if (file.Take(3).SequenceEqual(MP3))
            {
                mime = "audio/mpeg";
            }
            else if (file.Take(14).SequenceEqual(OGG))
            {
                if (extension == ".OGX")
                {
                    mime = "application/ogg";
                }
                else if (extension == ".OGA")
                {
                    mime = "audio/ogg";
                }
                else
                {
                    mime = "video/ogg";
                }
            }
            else if (file.Take(7).SequenceEqual(PDF))
            {
                mime = "application/pdf";
            }
            else if (file.Take(16).SequenceEqual(PNG))
            {
                mime = "image/png";
            }
            else if (file.Take(7).SequenceEqual(RAR))
            {
                mime = "application/x-rar-compressed";
            }
            else if (file.Take(3).SequenceEqual(SWF))
            {
                mime = "application/x-shockwave-flash";
            }
            else if (file.Take(4).SequenceEqual(TIFF))
            {
                mime = "image/tiff";
            }
            else if (file.Take(11).SequenceEqual(TORRENT))
            {
                mime = "application/x-bittorrent";
            }
            else if (file.Take(5).SequenceEqual(TTF))
            {
                mime = "application/x-font-ttf";
            }
            else if (file.Take(4).SequenceEqual(WAV_AVI))
            {
                mime = extension == ".AVI" ? "video/x-msvideo" : "audio/x-wav";
            }
            else if (file.Take(16).SequenceEqual(WMV_WMA))
            {
                mime = extension == ".WMA" ? "audio/x-ms-wma" : "video/x-ms-wmv";
            }
            else if (file.Take(4).SequenceEqual(ZIP_DOCX))
            {
                mime = extension == ".DOCX" ? "application/vnd.openxmlformats-officedocument.wordprocessingml.document" : "application/x-zip-compressed";
            }

            return mime;
        }
    }
}

Finally i got the solution. Above code helped me.

Thank you all for your suggestions.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

작동하지 않는 HTML 웹 페이지에서 파일 확장자를 제거하는 방법

분류에서Dev

내 웹 페이지를로드하기 전에 Firebase 웹 인증의 우선 순위를 지정하는 방법

분류에서Dev

셀레늄 웹 드라이버를 사용하여 장바구니에 추가 된 여러 제품이 동일한 지 확인하는 방법

분류에서Dev

Aurelia-Typescript에서 업로드하기 전에 이미지의 크기와 확장자를 확인하는 방법은 무엇입니까?

분류에서Dev

XP에서 여러 파일의 파일 확장자를 변경하는 방법은 무엇입니까?

분류에서Dev

jquery 유효성 검사기를 사용하여 양식을 제출하기 전에 업로드 할 파일이 선택되었는지 확인하는 방법

분류에서Dev

Angular에서 업로드하기 전에 zip 파일의 비밀번호를 확인하는 방법

분류에서Dev

파일 확장자를 확인하고 그에 따라 Windows 배치 파일의 기본 프로그램으로 여는 방법

분류에서Dev

이미지를 서버에 저장하기 전에 업로드 파일 제어에서 이미지 크기를 확인하는 방법은 무엇입니까?

분류에서Dev

RDP C #에서 웹 페이지로드를 확인하는 방법

분류에서Dev

JGit의 diff 대상에서 여러 파일 확장자를 제외하는 방법

분류에서Dev

PHP에서 여러 파일 업로드 필드를 확인하는 방법은 무엇입니까?

분류에서Dev

파일에 확장자가 있는지 확인하고 해당 확장자를 추가하지 않으면 확인하는 방법이 있습니까?

분류에서Dev

Behat에서 여러 페이지의 헤더 상태 코드를 확인하는 방법은 무엇입니까?

분류에서Dev

웹 페이지에서 Arduino 코드 ".ino 확장자"를 저장하는 방법은 무엇입니까?

분류에서Dev

확인란의 여러 값을 .txt 파일에 추가하는 방법

분류에서Dev

확장자를 모르고 원격 웹 사이트에 파일이 있는지 확인하십시오.

분류에서Dev

기존 파일의 파일 확장자를 동시에 변경하는 방법

분류에서Dev

팝업에서 웹 페이지를로드하는 방법

분류에서Dev

Firefox Mozilla 웹 확장 : 백그라운드 페이지에서 탭로드가 완료된시기를 확인하는 방법

분류에서Dev

CSV 파일에 저장된 여러 URL의 URL 상태를 확인하고 결과를 새 CSV 파일에 저장하는 방법

분류에서Dev

JavaScript를 사용하여 웹 페이지의 요소를 다른 웹 페이지에 복사하는 방법

분류에서Dev

Windows 8에서 여러 파일 이름 확장자를 검색하는 방법은 무엇입니까?

분류에서Dev

여러 웹 사이트 페이지에서 스크랩 한 결과를 CSV 파일로 저장하는 방법은 무엇입니까?

분류에서Dev

웹 페이지에서 Firefox 확장으로 데이터를 전송하는 방법

분류에서Dev

Javascript를 사용하여 웹 페이지에 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

Perl에서 주어진 파일 확장자를 가진 둘 이상의 파일이 존재하는지 확인하는 방법

분류에서Dev

HTML을 사용하여 표를 여러 웹 페이지에로드하는 방법은 무엇입니까?

분류에서Dev

웹 페이지에 단어가 있는지 확인하는 방법

Related 관련 기사

  1. 1

    작동하지 않는 HTML 웹 페이지에서 파일 확장자를 제거하는 방법

  2. 2

    내 웹 페이지를로드하기 전에 Firebase 웹 인증의 우선 순위를 지정하는 방법

  3. 3

    셀레늄 웹 드라이버를 사용하여 장바구니에 추가 된 여러 제품이 동일한 지 확인하는 방법

  4. 4

    Aurelia-Typescript에서 업로드하기 전에 이미지의 크기와 확장자를 확인하는 방법은 무엇입니까?

  5. 5

    XP에서 여러 파일의 파일 확장자를 변경하는 방법은 무엇입니까?

  6. 6

    jquery 유효성 검사기를 사용하여 양식을 제출하기 전에 업로드 할 파일이 선택되었는지 확인하는 방법

  7. 7

    Angular에서 업로드하기 전에 zip 파일의 비밀번호를 확인하는 방법

  8. 8

    파일 확장자를 확인하고 그에 따라 Windows 배치 파일의 기본 프로그램으로 여는 방법

  9. 9

    이미지를 서버에 저장하기 전에 업로드 파일 제어에서 이미지 크기를 확인하는 방법은 무엇입니까?

  10. 10

    RDP C #에서 웹 페이지로드를 확인하는 방법

  11. 11

    JGit의 diff 대상에서 여러 파일 확장자를 제외하는 방법

  12. 12

    PHP에서 여러 파일 업로드 필드를 확인하는 방법은 무엇입니까?

  13. 13

    파일에 확장자가 있는지 확인하고 해당 확장자를 추가하지 않으면 확인하는 방법이 있습니까?

  14. 14

    Behat에서 여러 페이지의 헤더 상태 코드를 확인하는 방법은 무엇입니까?

  15. 15

    웹 페이지에서 Arduino 코드 ".ino 확장자"를 저장하는 방법은 무엇입니까?

  16. 16

    확인란의 여러 값을 .txt 파일에 추가하는 방법

  17. 17

    확장자를 모르고 원격 웹 사이트에 파일이 있는지 확인하십시오.

  18. 18

    기존 파일의 파일 확장자를 동시에 변경하는 방법

  19. 19

    팝업에서 웹 페이지를로드하는 방법

  20. 20

    Firefox Mozilla 웹 확장 : 백그라운드 페이지에서 탭로드가 완료된시기를 확인하는 방법

  21. 21

    CSV 파일에 저장된 여러 URL의 URL 상태를 확인하고 결과를 새 CSV 파일에 저장하는 방법

  22. 22

    JavaScript를 사용하여 웹 페이지의 요소를 다른 웹 페이지에 복사하는 방법

  23. 23

    Windows 8에서 여러 파일 이름 확장자를 검색하는 방법은 무엇입니까?

  24. 24

    여러 웹 사이트 페이지에서 스크랩 한 결과를 CSV 파일로 저장하는 방법은 무엇입니까?

  25. 25

    웹 페이지에서 Firefox 확장으로 데이터를 전송하는 방법

  26. 26

    Javascript를 사용하여 웹 페이지에 이미지를 업로드하는 방법은 무엇입니까?

  27. 27

    Perl에서 주어진 파일 확장자를 가진 둘 이상의 파일이 존재하는지 확인하는 방법

  28. 28

    HTML을 사용하여 표를 여러 웹 페이지에로드하는 방법은 무엇입니까?

  29. 29

    웹 페이지에 단어가 있는지 확인하는 방법

뜨겁다태그

보관