웹사이트 제작 시 파일 다운로드 기능을 개발해야 하는 경우가 종종 있습니다. 파일을 다운로드하는 방법에는 세 가지가 있습니다.
1. ASP 다운로드 코드
<%
파일 이름 = Request.QueryString("파일 이름")
파일 이름 = ""이면
Response.Write "파일명 매개변수를 입력하고 다운로드한 파일명을 지정해주세요"
또 다른
Response.ContentType = "응용 프로그램/옥텟 스트림"
Response.AddHeader "content-disposition", "attachment; filename =" & 파일 이름
FileStream = Server.CreateObject("Adodb.Stream") 설정
FileStream.Mode = 3
파일스트림.유형 = 1
파일스트림.열기
FileStream.LoadFromFile( Server.MapPath(파일 이름))
Response.BinaryWrite( FileStream.Read )
FileStream.Close()
FileStream = 없음 설정
종료하면
%>위 코드를 asp형 파일로 저장하고, download.asp?filename=a.gif와 같이 사용하세요.
2. 웹클라이언트 사용
다운로드 버튼 이벤트에 다음 코드를 추가하세요.
System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadFile( " 위 코드는 프롬프트 없이 서버 측 a.gif 파일을 클라이언트의 C 드라이브에 다운로드합니다. 프롬프트가 없으면 꽤 무섭지만 때로는 이렇게 해야 할 때도 있습니다. 이 코드도 사용할 수 있습니다. 바탕 화면에서 프로그램을 실행합니다.
3. 다운로드 프롬프트가 포함된 ASP NET 다운로드 코드
//다운로드할 파일을 엽니다.
System.IO.FileStream r = new System.IO.FileStream(파일 이름, System.IO.FileMode.Open);
//기본정보 설정
응답.버퍼 = 거짓;
Response.AddHeader("연결", "연결 유지");
Response.ContentType = "응용 프로그램/옥텟 스트림";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(FileName));
Response.AddHeader("콘텐츠 길이", r.Length.ToString());
동안(사실)
{
//오픈 버퍼 공간
바이트[] 버퍼 = 새 바이트[1024];
//파일 데이터 읽기
int 길이 = r.Read(버퍼, 0, 1024);
if (leng == 0)//파일 끝까지 end
부서지다;
if (leng == 1024)//읽은 파일 데이터 길이가 버퍼 길이와 같고 버퍼 데이터가 직접 기록됩니다.
Response.BinaryWrite(버퍼);
또 다른
{
//읽은 파일 데이터가 버퍼보다 작습니다. 버퍼 크기를 다시 정의하고 파일의 마지막 데이터 블록을 읽는 데만 사용됩니다.
바이트[] b = 새로운 바이트[leng];
for (int i = 0; i < 길이; i++)
b[i] = 버퍼[i];
응답.BinaryWrite(b);
}
}
r.Close();//다운로드한 파일을 닫습니다.
Response.End(); //파일 다운로드를 종료합니다. 이 메소드에는 다운로드 프롬프트 상자가 있으므로 서버는 다운로드가 완료되었음을 알 수 있습니다.