首页 新闻 赞助 找找看

ftp上传 报错“系统错误”

0
悬赏园豆:50 [已解决问题] 解决于 2014-10-20 09:35
FileInfo fiLocalFile = new FileInfo(sSrcFileName);
ftpWebReq = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + sServerIP + "/" + sDstFileName));
ftpWebReq.Credentials = new NetworkCredential(sUserID, sPassword);
               
ftpWebReq.UsePassive = false; 
ftpWebReq.KeepAlive = false;
ftpWebReq.Method = WebRequestMethods.Ftp.UploadFile;
ftpWebReq.UseBinary = true;
ftpWebReq.ContentLength = fiLocalFile.Length;
MessageBox.Show(ftpWebReq.ToString());
int iBuffLen = 2048;
byte[] baBuff = new byte[iBuffLen];
int iConLen;

FileStream fsLocalFile = fiLocalFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Stream stmReq = ftpWebReq.GetRequestStream();
iConLen = fsLocalFile.Read(baBuff, 0, iBuffLen);
while (iConLen != 0)
{
    stmReq.Write(baBuff, 0, iConLen);
    iConLen = fsLocalFile.Read(baBuff, 0, iBuffLen);
}

stmReq.Close();
fsLocalFile.Close();

以上是代码。

这句话报错:Stream stmReq = ftpWebReq.GetRequestStream();

报错提示:系统错误。

我是内网,上传至外网ftp,会是什么问题导致?

三千君的主页 三千君 | 初学一级 | 园豆:157
提问于:2014-10-11 16:47
< >
分享
最佳答案
0

ftpWebReq.UsePassive = true;

收获园豆:50
Yu | 专家六级 |园豆:12980 | 2014-10-11 16:55
其他回答(3)
0

有没有报错的详细信息

draculav | 园豆:734 (小虾三级) | 2014-10-11 16:52
0

FileInfo fiLocalFile = new FileInfo(sSrcFileName);

ftpWebReq.ContentLength = fiLocalFile.Length;

不能一下全部读取加载到内存中,应该是有个指定特定的大小,采用数组偏移形式依次加载到内存中。

唯我独萌 | 园豆:537 (小虾三级) | 2014-10-14 09:06
0

建议你改用winscp吧

Albert Fei | 园豆:2102 (老鸟四级) | 2014-10-14 14:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册