我尝试使用C#将文件上传到FTP服务器.文件已上传但零字节.
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 !");
}
}
Run Code Online (Sandbox Code Playgroud) 我从这个链接有这个工作代码,将文件上传到ftp站点:
' set up request...
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create("ftp://ftp.myserver.com/test.txt"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("myusername", "mypassword")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' read in file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes("C:\Temp\test.txt")
' upload file...
Dim clsStream As System.IO.Stream = _
clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
Run Code Online (Sandbox Code Playgroud)
我想知道,如果文件已存在于ftp目录中,该文件是否会被覆盖?
我正在使用.NET 4 C#.我正在尝试上传然后将ZIP文件下载到(我的)服务器.
上传我有
using (WebClient client = new WebClient())
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(MyUrl);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.EnableSsl = false;
request.Credentials = new NetworkCredential(MyLogin, MyPassword);
byte[] fileContents = null;
using (StreamReader sourceStream = new StreamReader(LocalFilePath))
{
fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
}
request.ContentLength = fileContents.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileContents, 0, fileContents.Length);
}
FtpWebResponse response = null;
response = (FtpWebResponse)request.GetResponse();
response.Close();
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,因为我在正确大小的服务器上获得了一个文件.
1)如何流式传输,而不是先将其加载到内存中?我将上传非常大的文件.
我下载了
using (WebClient client = new WebClient())
{
string HtmlResult = String.Empty;
FtpWebRequest request = …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个上传/下载.exe文件的程序FTP
我尝试过使用FtpWebRequest,但我只能成功上传和下载.txt文件.
然后我在这里找到了一个下载解决方案WebClient:
WebClient request = new WebClient();
request.Credentials = new NetworkCredential("username", "password");
byte[] fileData = request.DownloadData("ftp://myFTP.net/");
FileStream file = File.Create(destinatie);
file.Write(fileData, 0, fileData.Length);
file.Close();
Run Code Online (Sandbox Code Playgroud)
此解决方案有效.但我看到WebClient有一种方法DownloadFile没有奏效.我想是因为它不工作FTP只HTTP.我的假设是真的吗?如果不是,我怎么能让它工作?
有没有其他解决方案上传/下载.exe文件到ftp使用FtpWebRequest?