2012-04-04 4 views
-1

그래서 vb.net을 사용하여 사용자가 다운로드하고자하는 파일의 바이트 데이터를 내 서버에서 검색합니다. 필자는 파일 이름과 확장명을 항상 알고 있지만 바이트 데이터를 적절한 파일 형식으로 다운로드하는 방법을 알지 못합니다. 어떻게해야합니까?바이트 배열을 다운로드하는 방법?

편집 : 코드를 바이트 형식으로 데이터를 검색하기 만하면 알 수있는 적절한 파일 형식으로 다운로드하면됩니다. 항상 URL이 숨겨져있어 노출되지 않습니다.

+0

사용해보기 (C#, 번역하기 쉽습니다) : http://msdn.microsoft.com/en-us/library/ms229711.aspx –

+0

URL이 필요합니다. 특히 바이트 형식의 데이터를 이미 검색 한 이후로 파일 위치를 공개하고 싶지 않습니다. – Mitchell

+0

그것은 분명하지 않다 ... 만약 당신이 바이트를 가지고 있다면, 당신은 무엇을 더 다운로드해야만 하는가? 그냥 구할 수 없니? –

답변

0

좋아요, 알아 냈습니다. AddHeader 및 ContentType과 같은 다른 Response 함수와 함께 BinaryWrite를 사용하여 작동하도록했습니다. GetMimeType은 내가 만든 함수입니다. 아래 코드 :

Response.Clear() 
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName) 
Response.ContentType = GetMimeType(FileName) 
Response.BinaryWrite(data) 
Response.End() 
Response.Flush() 

도와 주신 분께 감사드립니다.

+1

수정에 대한 축하! 할 수있을 때 다른 사람들이 당신의 성공을 통해 배울 수 있도록 귀하의 대답을 '수락'으로 표시하십시오. 건배 ~ –

+0

1 시간 후에 표시 할 수 있습니다. – Mitchell

2

파일을 하드 드라이브에 직접 다운로드하려면 가장 쉬운 해결책은 WebClient.DownloadFile입니다. MSDN 페이지에는 좋은 예가 들어 있습니다. 대신 디스크에있는 파일의 바이트 배열에 파일을 넣을 경우

대신 WebClient.DownloadData를 사용

Dim myWebClient As New WebClient() 
Dim myByteArray = myWebClient.DownloadData("http://...") 

다시 큰 예는 MSDN 페이지에서 찾을 수 있습니다.

다운로드하는 동안 프로그램의 응답 속도를 유지하려면 해당 방법 중 the asynchronous versions을 확인하십시오.


편집 : 나는 아직도 상황을 이해 힘든 시간을 보내고있어,하지만 디스크에 기록에 당신 이미 바이트 배열이 그냥 원하는, 당신은 File.WriteAllBytes를 사용할 수 있습니다

File.WriteAllBytes("C:\my\path\myfile.bin", myByteArray) 
+0

바이트 데이터를 사용자 하드 드라이브로 다운로드하고 싶습니다. 파일은 서버에 바이트 형식으로 저장됩니다. 첫 번째 링크를 확인해보고, 두 번째는 내가 원하는 것처럼 들리지 않습니다. – Mitchell

+0

신경 쓰지 마세요! 둘 다 URL이 필요합니다. 데이터가 숨겨져 있으므로 사용자에게 표시 URL이 없어야합니다. – Mitchell

+0

파일 위치를 숨기지 않았다면 좋을 것입니다. – Mitchell

관련 문제