即时尝试使用C#将jpeg上传到ftp服务器。该文件已上传,但打开时已损坏。 这是我的代码:使用C#FTP上传时图像损坏
/// <summary>
/// Upload HttpPostedFileBase to ftp server
/// </summary>
/// <param name="image">type of HttpPostedFileBase</param>
/// <param name="targetpath">folders path in ftp server</param>
/// <param name="source">jpeg image name</param>
public static void UploadFileToFTP(HttpPostedFileBase image,string targetpath,string source)
{
string ftpurl = ConfigurationManager.AppSettings["Ftp_Images_Domain"];
string ftpusername = ConfigurationManager.AppSettings["Ftp_Images_Usr"];
string ftppassword = ConfigurationManager.AppSettings["Ftp_Images_Pwd"];
try
{
SetMethodRequiresCWD();
string filename = Path.GetFileName(source);
string ftpfullpath = ftpurl + targetpath + source;
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential(ftpusername, ftppassword);
ftp.KeepAlive = false;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
HttpPostedFileBase myFile = image;
int nFileLen = myFile.ContentLength;
byte[] myData = new byte[nFileLen];
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(myData, 0, nFileLen);
ftpstream.Close();
ftpstream.Flush();
}
catch (WebException e)
{
String status = ((FtpWebResponse)e.Response).StatusDescription;
}
}
我认为问题是字节数组我写的FTP流。只是不知道如何解决它。 任何帮助表示赞赏:-)谢谢
我可以看到我的错误。它工作感谢你:) – Basilf
我今天来到这里,当我阅读有关CopyTo方法时,我想 - “当然...”_谢谢。你也可以通过在'使用...'之前添加'image.Seek(0,SeekOrigin.Begin)'来避免零长文件; – Alexandre