Skip to main content
 首页 » 编程设计

c#之无法将类型为 'System.Net.FileWebRequest' 的对象转换为类型 'System.Net.HttpWebRequest'

2024年08月06日47pengyingh

我在尝试测试上传到 FTP 时遇到上述错误。但是当我尝试从我的本地机器运行这段代码时,它给出了错误。好心提醒。

下面是我的代码:

 static void Main(string[] args) 
    { 
 
        var yourListOfFilePaths = Directory.GetFiles(filepath); 
 
        using (ZipFile zip = new ZipFile()) 
        { 
            foreach (string filePath in yourListOfFilePaths) 
            { 
                zip.AddFile(filePath);    // FILE PATH LOCATION / WHICH FOLDER FILES YOU WANTED TO ZIP 
                zip.Password = "abc1234"; // CHANGE YOUR PASSWORD HERE  
            } 
            zip.Save(ZipPath + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip"); 
 
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("http://www.bitrix24.com/" + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip"); 
            request.Method = WebRequestMethods.Ftp.UploadFile; 
            // This example assumes the FTP site uses anonymous logon. 
            request.Credentials = new NetworkCredential("jayden@bitrix24.com", "abc123"); 
 
            // Copy the contents of the file to the request stream. 
            StreamReader sourceStream = new StreamReader(ZipPath + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip"); 
            byte[] fileContents = File.ReadAllBytes("filepath"); 
            sourceStream.Close(); 
            request.ContentLength = fileContents.Length; 
            request.KeepAlive = false; 
 
            Stream requestStream = request.GetRequestStream(); 
            requestStream.Write(fileContents, 0, fileContents.Length); 
            requestStream.Close(); 
 
            FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 
            response.Close(); 
 
        } 
    } 

请您参考如下方法:

这个:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("http://www.bitrix24.com/" 
                              + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip"); 

是你的问题。您发送的地址以“http”而不是“ftp”开头。

更改您的网址:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.bitrix24.com/" +  
                                "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");