2012-12-24 1 views
0

나는 우리 조직 내에서만 액세스 할 수있는 웹 사이트를 개발 중입니다.VB.NET을 사용하여 ASP.NET에서 클라이언트 PC로 파일 다운로드

클라이언트가 서버에서 (Visio File *.vsd) 파일을 다운로드하여 원하는 위치에 저장하는 기능을 구현하고 싶습니다.

가 나는 해결책 건너 온 :

dim wc as new WebClient() 

wc.downloadFile(src,dest) 

그러나,이 솔루션은 대화 상자 (나는 내 ​​응용 프로그램에서 원하는 )로 저장하라는 메시지가 표시되지 않습니다. 또한 나는 경로를 데이터베이스에 저장할 수 있도록 파일을 저장 한 클라이언트의 PC 경로를 알아야합니다.

는 : ASP.NET에서

답변

4

클라이언트에 파일을 스트리밍 할 경우 (참고. 나는 VSS 유사한 기능을 구현하려는)를 선택하는 대화 상자 프롬프트으로 사용자가 저장이 때이 코드 예 이제

protected void SomeButton_Click(object sender, EventArgs e) 
{ 
    // TODO: adjust the path to the file on the server that you want to download 
    var fileToDownload = Server.MapPath("~/App_Data/someFile.pdf"); 

    Response.ContentType = "application/octet-stream"; 
    var cd = new ContentDisposition(); 
    cd.Inline = false; 
    cd.FileName = Path.GetFileName(fileToDownload); 
    Response.AppendHeader("Content-Disposition", cd.ToString()); 

    byte[] fileData = System.IO.File.ReadAllBytes(fileToDownload); 
    Response.OutputStream.Write(fileData, 0, fileData.Length); 
} 

: 예를 들어

: 위치 당신은 응답 스트림에 파일을 직접 올바른 내용 - 형식 및 내용 - 처리 응답 헤더를 설정 한 후 작성해야합니다 파일을 클라이언트 브라우저로 보내면 클라이언트 컴퓨터에 특정 위치에 저장하라는 메시지가 나타납니다.

보안상의 이유로 불행히도 클라이언트가 자신의 컴퓨터에 파일을 저장하도록 선택한 디렉토리를 캡처 할 방법이 없습니다. 이 정보는 전선을 통해 절대로 전달되지 않으며 사용자는 ASP.NET 응용 프로그램 내에서이 정보를 알 수 없습니다. 따라서이 정보를 얻는 다른 방법을 찾아야합니다 (예 : 클라이언트에게 일부 텍스트 상자 또는 다른 필드에 정보를 입력하도록 요청하는 경우).

+0

고맙습니다 .. 시도해보십시오. –

+1

@ NK- 시도한 후에 뭐라 구요? 투표 안해, 받아들이지 않니? 직장에서 의견이 없거나 다른 문제가 있습니까? – Aristos

+0

나는 그것을 시도했다 ... 나는 내용 유형을 설정하고 있었다 나는 선에 문제를 얻고 있었다. 내가 어디로 잘못 가고 있는지 알려줄거야. 감사합니다. –

관련 문제