2014-07-14 45 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

我不是100%確定我正確理解你。

您獲得了名爲response的FTPWebResponse對象。您可以調用FTPWebResponse對象的GetResponseStream()函數。此功能將爲您提供可用於進行實際FTP傳輸的流。 不僅僅是寫一個從你的sourceStream StreamReader複製到Stream的複製函數。

例子:

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

Stream myFTPStream = response.GetResponseStream(); 

//copy data into stream 

response.Close(); 

當然你還需要檢查exceptiont等等。我也沒有檢查你的代碼的其餘部分,但如果它迄今爲止工作正常,這是如何獲得所需的流。

相關問題