경우 파일의 이름 (및 파일의 부분이 아니다 파일에 대한 다른 데이터 바이트 데이터)를 나중에 사용해야하는 경우 해당 데이터도 저장해야합니다. 파일 이름에 대한 열을 추가하는 것이 좋습니다. 유형 (MIME 유형 또는 클라이언트의 브라우저 등으로 다시 전송하는 것과 같은 유형)과 크기에 대한 열을 추가하는 것이 좋습니다. 따라서 크기에 대한 열을 추가 할 필요가 없습니다. 이를 각 파일에 대해 즉석에서 계산하십시오 (파일 그리드를 표시 할 때 유용하며 그리드를 채우는 쿼리의 큰 BLOB 필드를 터치하지 않으려 할 때 유용합니다).
시스템 내부 식별을 위해 파일 이름을 사용하지 않도록하십시오. 사용자가 이름으로 파일을 검색하고 선택할 수있게하는 것은 괜찮습니다. 그러나 실제로 서버에 파일을 표시하도록 요청할 때 테이블에서 간단한 정수 기본 키를 사용하여 실제로 식별하는 것이 좋습니다. (부수적으로, 파일 이름 열에 고유 한 제한 조건을 두는 것이 좋습니다.)
파일을 사용자에게 표시하는 데 도움이 필요하면 시도한 방법을 사용하는 것이 좋습니다. 데이터베이스에서 이미지를 표시하는 경우에는 true입니다. 기본적으로 파일 ID를 쿼리 문자열 매개 변수로 받아 파일을 출력하는 리소스 (일반적으로 .aspx 페이지가 있지만 HttpHandler
일 수도 있음)가 있습니다.
이 리소스는 UI가 없으며 (Page 지시문을 제외한 .aspx에서 모든 것을 제거합니다.) 응답 헤더를 수동으로 조작합니다 (파일 형식에서 콘텐츠 형식을 설정하는 곳). 바이트 스트림을 작성합니다. 클라이언트에게 전달하고 응답을 종료합니다. 클라이언트의 관점에서 ~/MyContent/MyFile.aspx?fileID=123
과 같은 것일 경우 이이됩니다. 응답 헤더에 저장하기 위해 브라우저에 파일 이름을 제안 할 수 있습니다.이 파일의 저장된 이름을 사용하는 것이 좋습니다.
몇 년 전까지 만해도 주위에) 이미지로 이것을하는 방법에 관해서. 이미지 나 다른 종류의 파일 인 경우 서버의 관점과 본질적으로 차이가 없음을 기억하십시오. 모든 서버는 응답 헤더에 유형을 보내고 파일 바이트를 클라이언트에 씁니다. 클라이언트가 파일을 처리하는 방법은 브라우저에 달려 있습니다. 대다수의 경우 브라우저는 무엇을해야할지 (이미지를 표시하고, 플러그인을 통해 PDF를 표시하고 .doc를 저장하는 등) 알 수 있습니다.