2011-02-16 5 views
1

바이트 배열에서 PDF 파일을 저장하고 서버 맵 경로 위치에 해당 파일을 저장하려고합니다.servermap 경로의 바이트 배열에서 파일 저장

다음은 제 코드입니다. 오류가 없으며 파일을 저장하고 있습니다. 잘못된 것이면 내 구문을 수정하거나 다른 코드 스 니펫을 참조하여 도움을받을 수 있습니다.

byte[] data = (byte[])listDataset.Tables[0].Rows[0][0]; 

System.IO.FileStream file = System.IO.File.Create(Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf ")); 

file.Write(data, 0, data.Length); 
file.Close(); 
+3

하지 대답,하지만 당신은 File.WriteAllBytes''사용하여이 작업을 단순화 할 수 있습니다 : 아무튼 무엇 http://msdn.microsoft.com/en-us/library/system.io.file.writeallbytes.aspx – LukeH

+2

정확히 작동하지 않니? 오류가 있습니까? –

+0

AArsian : @Thomas처럼 묻습니다 : 전체 오류 메시지와 스택 추적을하십시오. –

답변

1

그것은 권한 문제가 될 수 ... ASP.net은 아래의 실행 대상 디렉토리에 쓰기 권한을 가지고있는 계정.

1

또 다른 "대답"이 아니지만 일부 물건을 관리하는 데 도움이 될 수 있습니다. 시도했는데

byte[] data = new byte[] { 12, 14, 63, 45, 3 }; 

    System.IO.FileStream file = System.IO.File.Create(HttpContext.Current.Server.MapPath(".\\imageLibrary\\test.pdf ")); 

    file.Write(data, 0, data.Length); 
    file.Close(); 

그리고 제대로 작동했습니다 (test.pdf가 작성되었습니다). 나는 파일 경로의 끝에있는 공간이 문제를 일으킬 수 있다고 생각했지만, 그렇지 않습니다.

경로 또는 권한 오류를 삼킬 수있는 try {} catch {} 블록에이 블록을 포함시키지 않았습니까? file.Close() 줄에 중단 점을 설정하여 시도 했습니까?

0
Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf ") 

경로가 예상되는 경로입니까? 예외 (예 : 사용 권한)가 없다고 확신하는 경우 디버깅을 권장하고 Server.MapPath에 대한 호출이 반환하는 값을 확인해야합니다.

파일을 쓰고 있지만 예상 한 것과 다른 위치에있을 수 있습니다.

"[MapPath에 대한 인수]가 슬래시로 시작되지 않으면 MapPath 메서드는 처리중인 .asp 파일의 디렉터리에 상대적인 경로를 반환합니다." http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

관련 문제