그래서 vb.net을 사용하여 사용자가 다운로드하고자하는 파일의 바이트 데이터를 내 서버에서 검색합니다. 필자는 파일 이름과 확장명을 항상 알고 있지만 바이트 데이터를 적절한 파일 형식으로 다운로드하는 방법을 알지 못합니다. 어떻게해야합니까?바이트 배열을 다운로드하는 방법?
편집 : 코드를 바이트 형식으로 데이터를 검색하기 만하면 알 수있는 적절한 파일 형식으로 다운로드하면됩니다. 항상 URL이 숨겨져있어 노출되지 않습니다.
그래서 vb.net을 사용하여 사용자가 다운로드하고자하는 파일의 바이트 데이터를 내 서버에서 검색합니다. 필자는 파일 이름과 확장명을 항상 알고 있지만 바이트 데이터를 적절한 파일 형식으로 다운로드하는 방법을 알지 못합니다. 어떻게해야합니까?바이트 배열을 다운로드하는 방법?
편집 : 코드를 바이트 형식으로 데이터를 검색하기 만하면 알 수있는 적절한 파일 형식으로 다운로드하면됩니다. 항상 URL이 숨겨져있어 노출되지 않습니다.
좋아요, 알아 냈습니다. 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 시간 후에 표시 할 수 있습니다. – Mitchell
파일을 하드 드라이브에 직접 다운로드하려면 가장 쉬운 해결책은 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)
사용해보기 (C#, 번역하기 쉽습니다) : http://msdn.microsoft.com/en-us/library/ms229711.aspx –
URL이 필요합니다. 특히 바이트 형식의 데이터를 이미 검색 한 이후로 파일 위치를 공개하고 싶지 않습니다. – Mitchell
그것은 분명하지 않다 ... 만약 당신이 바이트를 가지고 있다면, 당신은 무엇을 더 다운로드해야만 하는가? 그냥 구할 수 없니? –