2014-07-14 4 views
1

파일을 동적으로 생성하고 해당 파일을 FTP 폴더 위치에 저장하려고합니다.FTP 폴더의 스트림에서 파일을 직접 만들고 저장하는 방법은 무엇입니까?

다음과 같이 시도했습니다. 파일을 로컬에 저장하지 않고 FTP 위치에 업로드하고 싶지 않습니다.

나는 시내가 있고 그 시내를 사용하여 ftp에 파일을 창조하고 싶다.

어떻게하면됩니까?

FtpWebRequest requestFileUpload = (FtpWebRequest)WebRequest.Create("ftp://" +ftpServerIP+ "/" + remoteDir); 
        requestFileUpload.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
        requestFileUpload.Method = WebRequestMethods.Ftp.UploadFile; 

        // Copy the contents of the file to the request stream. 
        StreamReader sourceStream = new StreamReader(FILEDATA); 
        //FILEDATA is nothing but string 
        byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
        sourceStream.Close(); 
        requestFileUpload.ContentLength = fileContents.Length; 

        Stream requestStream = requestFileUpload.GetRequestStream(); 
        requestStream.Write(fileContents, 0, fileContents.Length); 
        requestStream.Close(); 

        FtpWebResponse response = (FtpWebResponse)requestFileUpload.GetResponse(); 


        response.Close(); 

답변

1

나는 너를 올바르게 이해하지 못했다.

응답이라는 FTPWebResponse 객체가 있습니다. FTPWebResponse 객체에 대해 GetResponseStream() 함수를 호출 할 수 있습니다. 이 함수는 실제 FTP 전송을 위해 사용할 수있는 스트림을 제공합니다. SourceStream StreamReader에서 Stream으로 복사하는 복사 기능을 작성하는 것보다.

예 :

당신은 또한 exceptiont과 등 확인해야 물론
FtpWebResponse response = (FtpWebResponse)requestFileUpload.GetResponse(); 

Stream myFTPStream = response.GetResponseStream(); 

//copy data into stream 

response.Close(); 

. 나머지 코드는 확인하지 않았지만 지금까지 제대로 작동하면 원하는 스트림을 얻는 방법입니다.

관련 문제