none
C# 要將檔案上傳至FTP-GetRequestStream問題 RRS feed

  • 問題

  • 各位前輩好,想請教一下大家,因我要將檔案從本機D:\Test\AData.txt 上傳到FTP的 TestFile 資料夾底下,試過了好幾個方式,但都會錯在

    Stream requestStream = uploadRequest.GetRequestStream(); 這段

    錯誤訊息為:遠端伺服器傳回一個錯誤: (530) 未登入。  但我確定我的帳密和FTP連線路徑是正確的,我有在debug mode細看還有以下錯誤

    名稱:ContentType,

    值:'uploadRequest.ContentType' 擲回型別 'System.NotSupportedException' 的例外狀況

    型別:string {System.NotSupportedException}

    我在網路上看到這段指令意思是,擷取用來上載資料至FTP伺服器的資料流,不懂自己錯在哪?想麻煩有經驗的幫忙我看一下,謝謝大家

    以下為程式碼:

    //宣告FTP連線
                System.GC.Collect();
                FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create("ftp://10.10.10.11/TestFile/AData.txt");

                //上傳檔案
                uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;

                // This example assumes the FTP site uses anonymous logon.
                uploadRequest.Credentials = new NetworkCredential("ftpUsername", "ftpPassword");

                //來源路徑檔案
                StreamReader sourceStream = new StreamReader("D:\\Test\\AData.txt");
                byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                sourceStream.Close();

                Stream requestStream = uploadRequest.GetRequestStream();
                requestStream.Close();

                FtpWebResponse response = (FtpWebResponse)uploadRequest.GetResponse();
                response.Close();





    • 已編輯 安安啾 2018年4月11日 上午 09:42
    2018年4月11日 上午 09:17

解答

所有回覆

  • 您的程式碼好像漏了一些動作, 例如設定ContentLength, 您可以參考這篇文件的做法:

    如何:透過 FTP 上傳檔案

    2018年4月11日 下午 12:56
  • 謝謝你,我測試了,但還是一樣的錯誤訊息...也是一樣跑到

    Stream requestStream = uploadRequest.GetRequestStream(); 這段

    錯誤訊息為:遠端伺服器傳回一個錯誤: (530) 未登入。

    2018年4月12日 上午 12:48
  • 你的程式 其實沒有上傳任何資料
    你可以用 一般 ftp client 軟體 去試看看 帳密 (注意大小寫)




    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2018年4月12日 上午 01:01
  • 錯誤訊息是未登入的話有可能是您提供的帳號與密碼不正確
    2018年4月12日 上午 03:10
  • 我有確定帳密都正確喔,後來發現我們是採用TLS加密連線,所以目前我往這個方向去思考...還是先謝謝各位前輩
    2018年4月12日 上午 09:06
  • TLS ? 建議你先看一下這一篇

    使用FtpWebRequest都無法連線到遠端伺服器,請問是否有什麼參數需要設定,再請解惑,謝


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2018年4月12日 上午 10:20
    版主