深圳 网站 设计,小程序退款商家不给退咋办,企业建站公司报价,站长素材网咨询区 webvision#xff1a;我尝试用 C# 上传一个文件到 FTP-Server 上#xff0c;文件已显示上传成功但显示 0Byte#xff0c;我的代码大概是这样的。private void button2_Click(object sender, EventArgs e)
{var dirPath C:/Documents and Settings/sander.GD/B… 咨询区 webvision我尝试用 C# 上传一个文件到 FTP-Server 上文件已显示上传成功但显示 0Byte我的代码大概是这样的。private void button2_Click(object sender, EventArgs e)
{var dirPath C:/Documents and Settings/sander.GD/Bureaublad/test/;ftp ftpClient new ftp(ftp://example.com/, username, password);string[] files Directory.GetFiles(dirPath,*.*);var uploadPath /httpdocs/album;foreach (string file in files){ftpClient.createDirectory(/test);ftpClient.upload(uploadPath / Path.GetFileName(file), file);}if (string.IsNullOrEmpty(txtnaam.Text)){MessageBox.Show(Gelieve uw naam in te geven !);}
}回答区 cdev很简单在 .NET5 中可以这么实现。async TaskFtpStatusCode FtpFileUploadAsync(string ftpUrl, string userName, string password, string filePath)
{FtpWebRequest request (FtpWebRequest)WebRequest.Create(ftpUrl);request.Method WebRequestMethods.Ftp.UploadFile;request.Credentials new NetworkCredential(userName, password);using (FileStream fileStream new FileStream(filePath, FileMode.Open, FileAccess.Read))using (Stream requestStream request.GetRequestStream()){await fileStream.CopyToAsync(requestStream);}using (FtpWebResponse response (FtpWebResponse)await request.GetResponseAsync()){return response.StatusCode;}
}在 .NET Framework 中可以这么实现。public void UploadFtpFile(string folderName, string fileName)
{FtpWebRequest request;string folderName; string fileName;string absoluteFileName Path.GetFileName(fileName);request WebRequest.Create(new Uri(string.Format(ftp://{0}/{1}/{2}, 127.0.0.1, folderName, absoluteFileName))) as FtpWebRequest;request.Method WebRequestMethods.Ftp.UploadFile;request.UseBinary 1;request.UsePassive 1;request.KeepAlive 1;request.Credentials new NetworkCredential(user, pass);request.ConnectionGroupName group; using (FileStream fs File.OpenRead(fileName)){byte[] buffer new byte[fs.Length];fs.Read(buffer, 0, buffer.Length);fs.Close();Stream requestStream request.GetRequestStream();requestStream.Write(buffer, 0, buffer.Length);requestStream.Flush();requestStream.Close();}
}然后像下面这样使用。UploadFtpFile(testFolder, E:\\filesToUpload\\test.img);Saeb Amini对于文件上传为啥要对底层的 WebRequest 进行封装造轮子呢你完全可以使用 WebClient 实现 FTP 的文件上传参考如下代码using (var client new WebClient())
{client.Credentials new NetworkCredential(ftpUsername, ftpPassword);client.UploadFile(ftp://host/path.zip, WebRequestMethods.Ftp.UploadFile, localFile);
}点评区 居然用 WebClient 就能轻松的实现文件上传Saeb Amini 大佬。