2011-01-11 5 views
4

파일에 대한 바이트 배열이 있는데이를 가져 와서 파일을 원격 파일 서버에 저장하는 방법이 있습니까?파일에 바이트 배열

감사합니다. 막대. 당신은 와이어를 통해 바이너리 데이터를 전송하는 경우

i.e. File.WriteAllBytes(....etc 

하지만 뭔가

이 알아야 할 ... 파일에 데이터를 쓰기

+1

원격 서버로 전송할 프로토콜을 결정해야합니다 (예 : HTTP, FTP 또는 Windows 파일 공유). 무엇을 성취하려고합니까? – dtb

+0

왜이 자바 스크립트와 jquery 태그가 있습니까? – Hogan

+0

@dtb 웹 사이트에서 파일을 가져 와서 원격 파일 서버로 전송하려고합니다. – Rod

답변

10
File.WriteAllBytes(@"\\server\public_share\MyFile.txt", byteArray); 
0

간단한 부분이며 @aaron는 방법을 보여 주었다 데이터에 제어 문자로 해석 될 수있는 바이트가 포함되어 있으면 데이터 전송에 문제가 발생합니다.

데이터를 먼저 인코딩하면 안전하게 전송할 수 있습니다. 일반적으로 Base64 인코딩과 같은 것을 사용합니다.

당신은 그렇게 변환 헬퍼 클래스를 사용할 수 있습니다 ...

Convert.ToBase64String("file contents"); 
+0

어? 어떤 경우에 네트워크를 통해 이진 파일을 저장하면 설명하는 유형의 문제가 발생한다는 것을 알고 있습니까? 아마도 FTP의 경우, 바이너리 모드 나 텍스트 전용 프로토콜을 지정하지 않고 Windows 파일 공유를 사용하지 않는 것이 좋습니다! –

+0

안녕하세요 짐, HTTP 전송 함께 ...이 일을 말하는 것은 아니지만 ... 방화벽 문제를 피하기 위해 포트 80을 통해 파일 서버로 데이터를 전송할 때 매우 일반적인 시나리오입니다. –

0

당신은 코드 숨김에서이 ​​일을하고 있다면 당신은하여 FileStream 및 BinaryWriter 개체를 사용해야합니다.

이와 비슷한 것;

FileStream filestream = new FileStream("myfile.txt", FileMode.Open); 
BinaryReader br = new BinaryReader(filestream); 

String msg = br.ReadString(); 
br.Close(); 
filestream.Close(); 

FileStream networkStream = new FileStream(@"\\server\share\file.txt", FileMode.Create); 
BinaryWriter bw = new BinaryWriter(filestream); 

bw.Write(msg); 
bw.Close(); 
networkStream.Close(); 

당신은 아마 당신이 물건의 같은 종류의 작업을 수행해야하지만 포스트 양식 요청에서 파일 스트림을 얻을 것이다 HTML 찾아보기 버튼을 사용하여 자바 스크립트를 통과하는 경우.

네트워크 위치에 문제가있을 수 있습니다. IIS를 사용하는 경우 가상 디렉터리를 설정하고 IIS에서 자격 증명을 설정할 수 있습니다. 다른 방법으로 파일을 네트워크 서버에 쓰려면 가장을해야합니다.

마이크