我有一個簡單的FTP上傳(大多不是我自己的代碼,仍在學習) 它工作得很好,但它正在破壞EXE文件,從我的閱讀周圍,這是因爲它不是一個二進制閱讀器。但令人困惑的是,我正在告訴它使用二進制。FTP FtpWebRequest uploader腐敗EXE文件
這是我的代碼:
private void UploadFileToFTP(string source)
{
String sourcefilepath = textBox5.Text;
String ftpurl = textBox3.Text; // e.g. ftp://serverip/foldername/foldername
String ftpusername = textBox1.Text; // e.g. username
String ftppassword = textBox2.Text; // e.g. password
try
{
string filename = Path.GetFileName(source);
string ftpfullpath = ftpurl + "/" + new FileInfo(filename).Name;
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential(ftpusername, ftppassword);
ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(source);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
}
catch (Exception ex)
{
throw ex;
}
}
怎麼辦你的意思是它工作正常,但腐敗exe文件?它是如何正常工作,如果它是破壞文件? –
因爲上傳的實際功能適用於大多數文件類型。除了.exes –
然後聽起來像是一個編碼問題。也許OpenRead()對編碼做一些簡單的事情。試試我的例子。我只用EXE測試過,它工作正常。 – Cory